当前位置:编程学习 > C#/ASP.NET >>

在ascx中调用aspx中控件,使用Page.FindControl()老有提示“未将对象引用设置到对象的实例”

我在自定义用户控件ascx中调用aspx中控件的ID,我使用Button control = (Button)Page.FindControl("bUpdate");
control.Visible = false;//运行到这里就会提示“未将对象引用设置到对象的实例”       control显示的是null    这个问题该如何解决呢,为什么Page.FindControl("bUpdate")返回的是null呀 --------------------编程问答-------------------- 先加载的ascx所以没有读到aspx页面中的控件 --------------------编程问答-------------------- 没有呀,应该是先加载的aspx后加载ascx吧 --------------------编程问答-------------------- 还有   我刚在aspx中用Button control = (Button)Page.FindControl("bUpdate");
control.Visible = false;//运行到这里就会提示“未将对象引用设置到对象的实例” control显示的也是null
HTML:
<table id="tbTable" runat="server">
       <tbody>
       <tr>
       <td>
       </td>
       <td>
           <asp:Button ID="bUpdate" runat="server" Text="点此进行更新" Font-Bold="True" 
               Font-Strikeout="False" ForeColor="Blue"
               onclick="bUpdate_Click" />
       </td>
       </tr>
        .
        .
        .
如果我用Button control = (Button)tbTable.FindControl("bUpdate");
control.Visible = false//则control不是null了      
可是我想在ascx中调用aspx中的控件  就不能使用Button control = (Button)tbTable.FindControl("bUpdate")了吧     因为没有Table的ID    所以想请高手帮我解决下这个问题 --------------------编程问答-------------------- LZ 你的button是放在用户空间上面吗,那样你先findControl(用户控件),然后再去找Button


--------------------编程问答-------------------- 是放在aspx中的,button外面没有其他包含的控件了 --------------------编程问答-------------------- 使用委託吧。 這樣調用不到的, 對於控件來說。 用他的父窗體是未知的。 --------------------编程问答-------------------- 参考:
http://www.cnblogs.com/insus/archive/2012/04/16/2451664.html

--------------------编程问答--------------------
引用 2 楼  的回复:
没有呀,应该是先加载的aspx后加载ascx吧

先加载ascx --------------------编程问答-------------------- 应该就该就是加载顺序造成的。 --------------------编程问答-------------------- 看来大家没有人给我一个明确的答案了,我刚刚从http://geniusleft.iteye.com/blog/61959这里看到一个解决方法,但是我还不知道为什么要这么做,但是确实解决了我现在的难题。谢谢大家了! --------------------编程问答-------------------- insus的方法确实是有用,但是与我所要的需求不一样,因为我所要控制的控件的个数不一样,如果按照insus所说的接口函数的参数的个数也不一样,而且我是将控件的名称和所对应的属性和值都写在配置页中的,这种情况该如何解决呢 --------------------编程问答-------------------- control.Visible = false的原因吧 生成的源码 应该看不到这个控件了。。。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,