在gridview中的用户控件中查找客户端控件ID

时间:2011-12-05 19:45:00

标签: c# asp.net gridview datagridview

所以...我正在尝试找到控件的客户端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"));

我想做什么有什么不对吗?请帮忙

1 个答案:

答案 0 :(得分:1)

您通常不需要查看单元格。 e.Row.FindControl("MfrNumHiddenfield")就足够了。

由于您正在寻找自定义控件中的控件,您可以尝试:

e.Row.FindControl("manufacturerCellControl").FindControl("MfrNumHiddenfield")

我从未尝试过,但看起来似乎有道理。

更好的选择是从ManufacturerCell控件公开属性以进行所需的更改。这将使控件的客户不需要理解内部工作。只需创建一个属性,然后用getset方法编写代码。