更新面板中的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事件中发生

有人遇到过这类问题吗?

任何帮助都是感激的!

更新面板中的FrozenGridView无法访问

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;