[英]Adding controls in gridview dynamically
I need to add controls to a GridView dynamically, so I added a PlaceHolder, but it it giving me an error. 我需要将控件动态添加到GridView中,因此我添加了PlaceHolder,但是它给了我一个错误。
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
PlaceHolder plachldr = e.Row.FindControl("PlaceHolder2") as PlaceHolder;
Button btn = new Button() { ID = "btnShhow", Text = "Show" };
plachldr.Controls.Add(btn);
PlaceHolder placeholder = e.Row.FindControl("PlaceHolder1") as PlaceHolder;
TextBox txt1 = new TextBox();
placeholder.Controls.Add(txt1);
}
While adding the control to the PlaceHolder, is is giving me the following error: 将控件添加到PlaceHolder时,出现以下错误:
Object reference not set to an instance of an object.
你调用的对象是空的。
Here's the markup for my GridView: 这是我的GridView的标记:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnSelectedIndexChanging="GridView1_SelectedIndexChanging" onrowdatabound="GridView1_RowDataBound">
<Columns>
<asp:BoundField DataField="Name" HeaderText="Name" />
<asp:BoundField DataField="Salary" HeaderText="Salary" />
<asp:TemplateField>
<ItemTemplate>
<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:PlaceHolder ID="PlaceHolder2" runat="server"></asp:PlaceHolder>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
You need to check plachldr or placeholder is null or not and also check for the RowType
你需要检查plachldr或占位符为空或不是,也请检查
RowType
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if( if (e.Row.RowType == DataControlRowType.DataRow)
{
PlaceHolder plachldr = e.Row.FindControl("PlaceHolder2") as PlaceHolder;
if(plachldr!=null)
{
Button btn = new Button() { ID = "btnShhow", Text = "Show" };
plachldr.Controls.Add(btn);
}
PlaceHolder placeholder = e.Row.FindControl("PlaceHolder1") as PlaceHolder;
if(placeholder!=null)
{
TextBox txt1 = new TextBox();
placeholder.Controls.Add(txt1);
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.