在网格视图中的用户控件中查找控件的客户端Id

本文关键字:控件 客户端 Id 查找 网格 用户 视图 | 更新日期: 2023-09-27 18:17:03

所以。。。我试图找到一个控件(一个隐藏的输入字段(的客户端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]是"用户控件"绑定到的列的单元格编号…

以下是如何将用户控件添加到网格视图中:

    grid.Columns.Add(CreateTemplateField(
            path + "ManufacturerHeader.ascx",
            path + "ManufacturerCell.ascx"));

我想做的事情有什么问题吗?请帮助

在网格视图中的用户控件中查找控件的客户端Id

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

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

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

我从来没有尝试过,但它似乎是合理的。

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