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