所以...我正在尝试找到控件的客户端ID(隐藏的输入字段),它是动态绑定到网格视图“项模板”的用户控件的一部分。 我试图在“RowDataBound”事件中执行以下操作,但似乎无法正常工作。
protected void grid_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (ShowSelectColumn)
{
HiddenField MfrHiddenField = (e.Row.Cells[2].FindControl("MfrNumHiddenfield")) as HiddenField;
}
其中“MfrNumHiddenfield”是隐藏输入字段的ID。 e.row.cells [2]是'用户控件'绑定到的列的单元格编号...
下面是如何将用户控件添加到gridview:
grid.Columns.Add(CreateTemplateField(
path + "ManufacturerHeader.ascx",
path + "ManufacturerCell.ascx"));
我想做什么有什么不对吗?请帮忙
答案 0 :(得分:1)
您通常不需要查看单元格。 e.Row.FindControl("MfrNumHiddenfield")
就足够了。
由于您正在寻找自定义控件中的控件,您可以尝试:
e.Row.FindControl("manufacturerCellControl").FindControl("MfrNumHiddenfield")
我从未尝试过,但看起来似乎有道理。
更好的选择是从ManufacturerCell
控件公开属性以进行所需的更改。这将使控件的客户不需要理解内部工作。只需创建一个属性,然后用get
和set
方法编写代码。