一,在一个客户端调服务器端方法里,往页面this.Page.Controls.Add(btnSave);
二,在另一个客户端调服务器端方法里,查找页面控件this.Page.FindControl("btnSave");问题,为什么调用this.Page.FindControl("btnSave")查找控件; 返回的是空???控件Ajax

解决方案 »

  1.   

    你这个用的是微软的那个Ajax控件吧??你这个需要把你这个生成控件的方式在Page_Load事件中重复执行一次,然后才能通过FindControl找到,通过Request这种方式貌似只能拿到数据
      

  2.   

    看不懂你是什么逻辑,你不要把B/S模式与C/S模式搞混了
      

  3.   


    描述有点歧义
    A.aspx 有两个ajax方法,ajaxMethod1和ajaxMethod2.
    A.aspx.cs 相对应有两个ajax服务器方法,ajaxServerMethod1和ajaxServerMethod2ajaxMethod1调用ajaxServerMethod1,在创建一个服务器控件,并添加到 this.Page.Controls.Add(btnSave);
    ajaxMethod2调用ajaxServerMethod2,在页面上查找这个服务器控件。问题是this.Page.FindControl("btnSave");查找不到该控件???
      

  4.   


    描述有点歧义
    A.aspx 有两个ajax方法,ajaxMethod1和ajaxMethod2.
    A.aspx.cs 相对应有两个ajax服务器方法,ajaxServerMethod1和ajaxServerMethod2ajaxMethod1调用ajaxServerMethod1,在创建一个服务器控件,并添加到 this.Page.Controls.Add(btnSave);
    ajaxMethod2调用ajaxServerMethod2,在页面上查找这个服务器控件。问题是this.Page.FindControl("btnSave");查找不到该控件???
      

  5.   


    Ext.NET就是为了不让页面第一次加载的时候生成,想通过用户操作来加载控件,达到延迟加载的目的
      

  6.   


    描述有点歧义
    A.aspx 有两个ajax方法,ajaxMethod1和ajaxMethod2.
    A.aspx.cs 相对应有两个ajax服务器方法,ajaxServerMethod1和ajaxServerMethod2ajaxMethod1调用ajaxServerMethod1,在创建一个服务器控件,并添加到 this.Page.Controls.Add(btnSave);
    ajaxMethod2调用ajaxServerMethod2,在页面上查找这个服务器控件。问题是this.Page.FindControl("btnSave");查找不到该控件???那是当然的,ajaxMethod1调用一次,就相当于重新访问一次页面
      

  7.   

    问题描述得不太清楚。
    可以确认一下这个是什么控件? 是ASCX?
      

  8.   


    不是ascx 就一般的服务器控件。
      

  9.   

    唉 关注人的太少了,问题解决了。
    还是分享下解决方式!定义一个静态变量,
    调用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")查找不到。这里还是有个疑惑就是页面初始化的时候 是根据什么来初始化的?