Как я могу добавить элементы управления в gridview динамически? - PullRequest
0 голосов
/ 03 июля 2011

У меня есть два столбца, как мне добавить контур или два к каждому динамически ... каждый раз, когда создается строка ..

Я также хочу создать столбцы динамически .. через итерацию.

Как мне этого добиться?

1 Ответ

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

Поместите элемент управления PlaceHolder в столбец, в который вы хотите добавить элементы управления.Затем внутри RowDataBound события GridView добавьте элементы управления в PlaceHolder

Edit 1

Ваши столбцы сетки в aspx будут выглядеть следующим образом: -

<Columns>
<asp:TemplateField HeaderText="Column1">
    <ItemTemplate>
        <asp:PlaceHolder runat='server' ID="column1PlaceHolder"></asp:PlaceHolder>
    </ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Column2">
    <ItemTemplate>
        <asp:PlaceHolder runat='server' ID="column2PlaceHolder"></asp:PlaceHolder>
    </ItemTemplate>
</asp:TemplateField>
</Columns>

Ваше событие RowDataBound будет выглядеть так: -

public void GridView_RowDataBound(Object sender, GridViewRowEventArgs e)
{
    if (column1NeedsControls)
    {
        PlaceHolder placeHolder = e.Row.FindControl("column1PlaceHolder") as PlaceHolder;
        TextBox TextBox1 = new TextBox();
        placeHolder.Controls.Add(TextBox1);
    }

    if (column2NeedsControls)
    {
        PlaceHolder placeHolder = e.Row.FindControl("column2PlaceHolder") as PlaceHolder;
        TextBox TextBox1 = new TextBox();
        placeHolder.Controls.Add(TextBox1);
    }
}
...