更新面板中的FrozenGridView无法访问
本文关键字:访问 FrozenGridView 更新 | 更新日期: 2023-09-27 18:18:41
我有一个RealWorld.Grids.FrozenGridView
,在网格上选择几个复选框(在最后一列)后,我试图访问c#文件中的行,在选定的行上运行一些任务,但网格出现为null,当我试图根据网格的名称从页面查找控件时,结果为null。
gridname = (RealWorld.Grids.FrozenGridView)this.FindControl("gridname") as RealWorld.Grids.FrozenGridView;
网格位于更新面板中,因此为了访问网格,我将更新面板包含在查找控件中,如下所示:
UpdatePanel up1 = new UpdatePanel();
up1.ID = "updatepanelID";
Label gn = (Label)up1.FindControl("labelname");
我也试过:
label lbl = (Label)this.Page.FindControl("updatepanelid").FindControl("labelname") as Label;
这应该在button_click事件中发生
有人遇到过这类问题吗?
任何帮助都是感激的!
FindControl并不总是像预期的那样工作。试试这个递归函数,并使用上面的代码行。
public static Control FindControlRecursive(Control ctlRoot, string sControlId)
{
// if this control is the one we are looking for, break from the recursion
// and return the control.
if (ctlRoot.ID == sControlId)
{
return ctlRoot;
}
// loop the child controls of this parent control and call recursively.
foreach (Control ctl in ctlRoot.Controls)
{
Control ctlFound = FindControlRecursive(ctl, sControlId);
// if we found the control, return it.
if (ctlFound != null)
{
return ctlFound;
}
}// we never found the control so just return null.
return null;
}
你的调用看起来像这样。
var ridname = (RealWorld.Grids.FrozenGridView)FindControl(this, "gridname") as RealWorld.Grids.FrozenGridView;