在asp.net中添加WebUserControl到Gridview
问题描述:
我想添加一个webusercontol,它包含一个文本框和一个标签到gridview控件。我使用动态数据表绑定GridView。在asp.net中添加WebUserControl到Gridview
这里是我的代码:
@ 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是在WebUserControl声明了两个属性,但它给对象引用错误。
谢谢,
答
你必须拦截RowDataBound事件中的那个对象。
在您调用grdfoneBoxContainer.DataBind();如果编写和处理程序事件的RowDataBound:
保护无效grdfoneBoxContainer_RowDataBound(对象发件人,GridViewRowEventArgs E) { 如果(e.Row.RowType == DataControlRowType.DataRow) { CompareBox compareBox =(CompareBox)在线.Row.FindControl( “CompareBoxCol1”);
//here you have a reference to your control
}
}