一,在一个客户端调服务器端方法里,往页面this.Page.Controls.Add(btnSave);
二,在另一个客户端调服务器端方法里,查找页面控件this.Page.FindControl("btnSave");问题,为什么调用this.Page.FindControl("btnSave")查找控件; 返回的是空???控件Ajax
二,在另一个客户端调服务器端方法里,查找页面控件this.Page.FindControl("btnSave");问题,为什么调用this.Page.FindControl("btnSave")查找控件; 返回的是空???控件Ajax
描述有点歧义
A.aspx 有两个ajax方法,ajaxMethod1和ajaxMethod2.
A.aspx.cs 相对应有两个ajax服务器方法,ajaxServerMethod1和ajaxServerMethod2ajaxMethod1调用ajaxServerMethod1,在创建一个服务器控件,并添加到 this.Page.Controls.Add(btnSave);
ajaxMethod2调用ajaxServerMethod2,在页面上查找这个服务器控件。问题是this.Page.FindControl("btnSave");查找不到该控件???
描述有点歧义
A.aspx 有两个ajax方法,ajaxMethod1和ajaxMethod2.
A.aspx.cs 相对应有两个ajax服务器方法,ajaxServerMethod1和ajaxServerMethod2ajaxMethod1调用ajaxServerMethod1,在创建一个服务器控件,并添加到 this.Page.Controls.Add(btnSave);
ajaxMethod2调用ajaxServerMethod2,在页面上查找这个服务器控件。问题是this.Page.FindControl("btnSave");查找不到该控件???
Ext.NET就是为了不让页面第一次加载的时候生成,想通过用户操作来加载控件,达到延迟加载的目的
描述有点歧义
A.aspx 有两个ajax方法,ajaxMethod1和ajaxMethod2.
A.aspx.cs 相对应有两个ajax服务器方法,ajaxServerMethod1和ajaxServerMethod2ajaxMethod1调用ajaxServerMethod1,在创建一个服务器控件,并添加到 this.Page.Controls.Add(btnSave);
ajaxMethod2调用ajaxServerMethod2,在页面上查找这个服务器控件。问题是this.Page.FindControl("btnSave");查找不到该控件???那是当然的,ajaxMethod1调用一次,就相当于重新访问一次页面
可以确认一下这个是什么控件? 是ASCX?
不是ascx 就一般的服务器控件。
还是分享下解决方式!定义一个静态变量,
调用ajaxServerMethod1的时候动态创建按钮,并把它赋值给静态变量,
在page_load中的添加
if (btnSave != null && !this.Page.Controls.Contains(btnSave)) {
this.Page.Controls.Add(btnSave);
}
然后在ajaxServerMethod2的时候就可以用this.Page.FindControl("btnSave")。
原因:一直觉得ajax方式动态创建的按钮,没最终保存进页面某一个变量(viewstate?)
以至于ajax方式调用后台其它方法时候,页面初始化的时候,没有初始动态创建的控件。
也就在this.Page.FindControl("btnSave")查找不到。这里还是有个疑惑就是页面初始化的时候 是根据什么来初始化的?