AJAX中UpdatePanel 常见问题总结

  1.ScriptManager在源代码中的位置不正确

     每个page只需要一个ScriptManager或者轻量级的ScriptManagerProxy,必须在UpdatePanel之前

      2. ScriptManager没有启用EnablePartialRendering,需要设置为true;

      3. 局部更新过程没法向页面写入JavaScript

            这需要用Scriptmanager的一个静态方法注册客户端脚本即可:

             Scriptmanager.RegisterStartupScript(panelID,typeof(UpdatePanel),"scriptname","alert('put something you need')",true);

       4.动态加载的用户控件中的UpdatePanel无法正常工作

          一般程序员都在Page_Load(obj,e)这个Load的函数里动态加载控件,但是在包含UpdatePanel中将无法正常工作。因为加载太晚了,UpdatePanel

     的实现要靠Scriptmanager的帮助,ASP.NET AJAX将在Page的Load的阶段中自动进行这两个控件之间的协调。所以上述在Page_Load()方法中加载

     用户控件,已经错过了UpdatePanel和Scriptmanager的沟通的时期。这样新加载的用户控件中的UpdatePanel和页面中的Scriptmanager彼此互不知晓,自然无法得到我们期望的AJAX动态加载用户控件的效果。

      解决方法就是将动态加载用户控件的代码移到Page_Init()中就可以了 

      例如:protected void Page_Init(object sendre,EventArg e)

     {

        Control myControl;

         if(....)

          myControl=Page.LoadControl("MyUserControl1.ascx");

          else

          myControl=Page.LoadControl("MyUserControl2.ascx");

      }

    

转载于:https://www.cnblogs.com/qingen/archive/2012/12/26/2833641.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值