如何动态地向gridview添加控件?

Dmi*_*iyd -2 asp.net controls gridview

我有两列,如何动态添加一个或两个控件...每次创建一行...

我还想通过迭代动态创建列.

我如何实现这一目标?

Waq*_*aja 5

PlaceHolder控件放在要添加控件的列中.然后在GridView的RowDataBound事件中添加对PlaceHolder的控件

编辑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>
Run Code Online (Sandbox Code Playgroud)

您的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);
    }
}
Run Code Online (Sandbox Code Playgroud)