0

我在数据列表的编辑模板中有一个 webusercontrol。在后面的代码中,在 itemCommand 中,当我尝试使用 findcontrol 找到它时,我得到空对象。

我做错了什么?

WebUserControl cntrl = (WebUserControl)e.Item.FindControl("myControl");

或者我还在 EditCommand 事件中尝试了以下操作,因为我将用户控件保留在 DataList 的 EditTemplate 中:

WebUserControl cntrl = (WebUserControl)DataList1.FindControl("myControl");
4

2 回答 2

0

我想你可能正在做这样的事情:

    protected void gridView_rowDataBound(Object sender, GridViewRowEventArgs e)
    {
        WebUserControl cntrl = (WebUserControl)e.Item.FindControl("myControl");
    }

请记住,您将查看每一行 - 包括页眉和页脚行。

我认为你需要这个:

    protected void gridView_rowDataBound(Object sender, GridViewRowEventArgs e)
    {
       if (e.Row.RowType == DataControlRowType.DataRow){
            WebUserControl cntrl = (WebUserControl)e.Item.FindControl("myControl");
       }
    }
于 2011-07-05T20:01:20.917 回答
0

其实没关系,我将控件移动到 headertemplate 并查看它的控件集合,我能够使用 FindControl 找到控件。如果我将它放在edititemtemplate中,不知道为什么它找不到。但谢谢大家感谢您的帮助。

于 2011-07-06T11:26:28.707 回答