C# 将WebUserControl添加到asp.net中的Gridview
我想向gridview控件添加一个WebUserControl,它包含一个文本框和一个标签。我将gridview与datatable动态绑定 这是我的密码:C# 将WebUserControl添加到asp.net中的Gridview,c#,asp.net,C#,Asp.net,我想向gridview控件添加一个WebUserControl,它包含一个文本框和一个标签。我将gridview与datatable动态绑定 这是我的密码: @ Register Src="CompareBox.ascx" TagName="CompareBox" TagPrefix="objCompareBox" %><br> <asp:GridView ID="grdfoneBoxContainer" runat="server"> <C
@ 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();
@Register Src=“CompareBox.ascx”TagName=“CompareBox”TagPrefix=“objCompareBox”%>
DataTable dt=新的DataTable();
dt.列添加(“uc1”);
dt.列添加(“uc2”);
dt.列添加(“uc3”);
dt.列添加(“uc4”);
CompareBox objCompareBox=新的CompareBox();
objCompareBox.txt=“世界”;
objCompareBox.lbl=“你好”;
添加(objCompareBox,objCompareBox,objCompareBox,objCompareBox);
添加(objCompareBox,objCompareBox,objCompareBox,objCompareBox);
添加(objCompareBox,objCompareBox,objCompareBox,objCompareBox);
添加(objCompareBox,objCompareBox,objCompareBox,objCompareBox);
grdfoneBoxContainer.DataSource=dt;
grdfoneBoxContainer.DataBind();
txt和lbl是WebUserControl中声明的两个属性,但它给出了对象引用错误
谢谢,您必须在RowDataBound事件中拦截该对象 调用grdfoneBoxContainer.DataBind()之后;如果为RowDataBound事件编写和处理程序: 受保护的void grdfoneBoxContainer_RowDataBound(对象发送方,GridViewRowEventArgs e) { if(e.Row.RowType==DataControlRowType.DataRow) { CompareBox CompareBox=(CompareBox)e.Row.FindControl(“CompareBoxCol1”)
//here you have a reference to your control
}
}