[英]Adding WebUserControl To Gridview in asp.net
I want to add a webusercontol which contains a textbox and a label to the gridview control. 我想将一个包含文本框和标签的webusercontol添加到gridview控件。 I am binding a gridview with a datatable dynamically.
我正在动态绑定一个GridView与一个数据表。
Here is my code: 这是我的代码:
@ Register Src="CompareBox.ascx" TagName="CompareBox" TagPrefix="objCompareBox" %><br>
<asp:GridView ID="grdfoneBoxContainer" runat="server">
<Columns><br>
<asp:TemplateField HeaderText="User control"> <br>
<ItemTemplate><br>
<objCompareBox:CompareBox ID="CompareBoxCol1" runat="server"/><br>
</ItemTemplate><br>
</asp:TemplateField><br>
</Columns><br>
</asp:GridView><br>
DataTable dt = new DataTable();
dt.Columns.Add("uc1");
dt.Columns.Add("uc2");
dt.Columns.Add("uc3");
dt.Columns.Add("uc4");
CompareBox objCompareBox = new CompareBox();
objCompareBox.txt= "World";
objCompareBox.lbl = "Hello";
dt.Rows.Add(objCompareBox, objCompareBox, objCompareBox, objCompareBox);
dt.Rows.Add(objCompareBox, objCompareBox, objCompareBox, objCompareBox);
dt.Rows.Add(objCompareBox, objCompareBox, objCompareBox, objCompareBox);
dt.Rows.Add(objCompareBox, objCompareBox, objCompareBox, objCompareBox);
grdfoneBoxContainer.DataSource = dt;
grdfoneBoxContainer.DataBind();
txt & lbl are two properties that are declared in WebUserControl but it's giving object reference error . txt和lbl是在WebUserControl中声明的两个属性,但它给了对象引用错误。
Thanks, 谢谢,
you have to intercept that object within the RowDataBound event. 您必须在RowDataBound事件中拦截该对象。
After you have call grdfoneBoxContainer.DataBind(); 调用grdfoneBoxContainer.DataBind();之后; if you write and handler for the event RowDataBound:
如果为事件RowDataBound编写并处理事件:
protected void grdfoneBoxContainer_RowDataBound(object sender, GridViewRowEventArgs e) { if(e.Row.RowType==DataControlRowType.DataRow) { CompareBox compareBox = (CompareBox) e.Row.FindControl("CompareBoxCol1"); 受保护的void grdfoneBoxContainer_RowDataBound(object sender,GridViewRowEventArgs e){if(e.Row.RowType == DataControlRowType.DataRow){CompareBox compareBox =(CompareBox)e.Row.FindControl(“ CompareBoxCol1”);
//here you have a reference to your control
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.