无法在datalist的编辑模板中找到用户控件

时间:2011-07-05 16:45:03

标签: asp.net data-controls

我在datalist的edittemplate中有一个webusercontrol。在后面的代码中,在itemCommand中,当我尝试使用findcontrol找到它时,我得到null对象。

我做错了什么?

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

或者我也在EditCommand事件中尝试过以下操作,因为我将usercontrol保留在DataList的EditTemplate中:

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

2 个答案:

答案 0 :(得分: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");
       }
    }

答案 1 :(得分:0)

实际上没关系,我将控件移动到headertemplate并查看其控件集合,我能够使用FindControl找到控件。不知道为什么我没有找到我是否将它放在edititemtemplate中。但谢谢你们,感谢你们的帮助。