[问题] master aspx usercontrol 互抓控件

楼主: kisha024 (4545454554)   2017-06-23 14:16:39
各位好
我有个master 里面放3个button, 1个usercontrol UC1(里面有3个button), 1个aspx
aspx里面放3个button, 1个usercontrol UC2(里面有3个button)
配置如下图
http://i.imgur.com/ZnVqYXy.png
如果想点button10抓到button7
如下写法 可以work
Button btn = (Button)this.Page.Master.FindControl("ContentPlaceHolder1")
.FindControl("Button7");
如下写法 会出错
Button btn = (Button)this.Page.FindControl("Button7");
我的问题是 既然Button7在aspx里面
为什么Page.FindControl("Button7")会抓不到控件?
只能一路往上到master 再往下到Page.FindControl("Button7")才抓得到吗?
是否有更简洁的写法?
谢谢 
程式码如下
https://www.sendspace.com/file/t7o4ty
作者: J002 (阿里山 我来了XD~)   2017-06-23 19:32:00
因为你的button7是另外包在user control里面吧?
楼主: kisha024 (4545454554)   2017-06-23 20:24:00
并没有 本例中只有两个user control
作者: te426odin (小胖老师)   2017-06-24 09:46:00
this.page只会去找在page里面control而不会再去找control里面的control应该说FindControl这个方法是这样你可拉一个Girdview里面放一个Label,然后用你第二个写法试试看就知道了
作者: Laluth (阳光)   2017-06-25 01:34:00
因为this.Page 底下只有一个控件 叫做MasterPage所有其他的控件都是在它"里面" 被他包起来
作者: J002 (阿里山 我来了XD~)   2017-06-25 15:19:00
刚刚开了您的程式码,是有抓到Button1的抓的是第二个phvs7z那部份但若是有包了MasterPage,就会跟Laluth大说的一样,aspx底下只有一个MasterPage的Control,所以FindControl当然会找不到button

Links booklink

Contact Us: admin [ a t ] ucptt.com