浏览:1722008-04-23 22:23   来自blueyund      :

在一个控件里面创建的控件要怎么引用哦

比如
<asp:DataGrid ID="DataGrid1" runat="server" PageSize="5" AutoGenerateColumns="False"
                            ShowHeader="False">


<asp:Panel id="Panel3" runat="server"> </asp:Panel>

</asp:DataGrid>

这建在DataGrid1里面Panel3要怎么引用啊

楼主
  3周前   丁学      :
Panel p = (Panel)DataGrid1.FindControl("Panel3");
需要注意的是,如果Panel不是DataGrid的直接子元素(即在Panel和DataGrid之间还有其他元素)时,需要使用距离Panel最近的元素的FindControl方法
回复  1楼 回到顶楼 
  3周前   blueyund      :

哈哈,谢谢
等等马上试试
回复  2楼 回到顶楼 
  3周前   blueyund      :
可以是可以
可是找到P后
P.Visible = false;
就出错了

错误提示:
未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
回复  3楼 回到顶楼 
  4天前   blueyund      :
搞定了
在DataGrid的ItemDataBound事件里操作,如下
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Panel Pwhisperc = (Panel)e.Item.Cells[0].FindControl("Pwhisperc");
Pwhisperc.Visible = false;
}
回复  4楼 回到顶楼 

你还不是小组成员,加入小组以后才能发布新主题!
> 返回“ASP.NET”


其他话题

1 31795