Размещение элементов управления в виде сетки Динамически - PullRequest
0 голосов
/ 03 июля 2011

У меня есть список объектов, у каждого объекта есть 3 свойства. Я хочу перебрать список и поместить их в сетку.

public void PutAllObjects in a GridView(List<CommentsObject>commentsData)
{
    int num=0;
     foreach(var item in commentsData)
     {
              Image img=new Image();
              img.imageUrl=item.ImageOfUser;
              Hyperlink hl=new Hyperlink();
              hl.Text="<br/>"+item.UsersName;
              GridView1.Rows[num++].Cells[0].Controls.Add(img);
              GridView1.Rows[num].Cells[0].Controls.Add(hl);
              lbl=new Label();
              lbl.Text=item.UsersComment
              GridView1.Rows[num].Cells[1].Controls.Add(lbl);

     }

}

Что я должен получить, так это мой GridView1, имеющий 40 строк,В каждой строке 2 столбца. В первом столбце есть изображение с гиперссылкой, а во втором столбце - комментарии пользователей (метка).

Правильно ли я пишу код?или есть лучший способ добиться того, чего я хочу

1 Ответ

2 голосов
/ 03 июля 2011

Тебе лучше сделать что-то подобное.

GridView1.DataSource = commentsData;
GridView1.DataBind();

Если вы хотите связать только два столбца, вы можете сделать следующее.

var source = from p in commentsData
             select new {p.ImageOfUser, "<br/>" + p.UsersName, p.UsersComment };
GridView1.DataSource = source;
GridView1.DataBind();

  <asp:GridView ID="gvView" runat="server" AutoGenerateColumns="False">
                <Columns>
                    <asp:TemplateField HeaderText="#">
                        <ItemTemplate>
                            <asp:Image ID="imgName" imageUrl='<%# Bind("ImageOfUser") %>'></asp:Image>
                            <asp:Hyperlink ID="hyperLink" Text='<%# Bind("UsersComment") %>' ></asp:Hyperlink>
                        </ItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="lblMessage" Text='<%# Bind("UsersComment") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                 </Columns>
   </asp:GridView>

Как вы можете видеть выше, изображение и гиперссылка находятся внутри ItemTempate, что означает, что они будут отображаться в одной ячейке в виде сетки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...