zoukankan      html  css  js  c++  java
  • 在UpdatePanel CallBack后插入方法

    实在不想用UpdatePanel,因为局限性很大,但是想偷懒,就一直用它,最近项目上的一些东西,让我恨透了它,如果没有它,可能早就写完了..
    前面说了一些废话,实在是想吐槽UpdatePanel
    先说是怎么回事,页面上有用jquery写的一些效果,外面包了一层UpdatePanel,但是每次PostBack后,jquery加上的效果就都不在了,让人非常的郁闷,于是想在UpdatePanel的CallBack完成后,把PostBack前的状态恢复,找了半天,终于找到一个解决办法,记下来,免得以后又悲剧,唉.
    $(function(){
        method1();
        method2();
        reload();
    });
    
    function reload(){
     Sys.WebForms.PageRequestManager.getInstance().add_endRequest(callback);
    }
    
    function callback(){
        //do something here...
    }
    还有一种方法就是继承UpdatePanel,重写它的OnPreRender事件,代码如下:
    public class UpdatePanel:System.Web.UI.UpdatePanel
    {
        /// <summary>
        /// Javascript to be run when the updatepanel has completed updating
        /// </summary>
        [Description("Javascript to be run when the updatepanel has completed updating"),
            Category("Values"),
            DefaultValue(null),
            Browsable(true)]
        public string OnUpdateCompleteClientScript
        {
            get
            {
                    return(string)ViewState["OnUpdateCompleteClientScript"];
            }
            set
            {
                    ViewState["OnUpdateCompleteClientScript"]= value;
            }
        }
    
        protected override void OnPreRender(System.EventArgs e)
        {
            base.OnPreRender(e);
            if(!string.IsNullOrEmpty(this.OnUpdateCompleteClientScript))
                    Page.ClientScript.RegisterStartupScript(this.GetType(),this.ClientID,string.Concat("Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function(sender, args){for(var panelId in sender._updatePanelClientIDs){if(sender._updatePanelClientIDs[panelId] == '",this.ClientID,"'){",this.OnUpdateCompleteClientScript,"}}});"),true);
        }
    }
    这个方法我没有测试,有没有用就不晓得了~~~,不过第一个方法是有用的~,嗯,收工,回家吃饭,20:34还在公司,我太牛了,就这样!!!
  • 相关阅读:
    NPOIHelper
    NPOI.dll 用法:单元格、样式、字体、颜色、行高、宽度 读写excel
    SQL中的循环、for循环、游标
    .net mvc datatables中orderby动态排序
    MVC中给TextBoxFor设置默认值和属性
    定义实体系列-@JsonIgnoreProperties注解
    微信公众号登录与微信开放平台登录区别
    http-Post请求,Post Body中的数据量过大时出现的问题
    .net core Linux 安装部署
    二、微信公众号开发-获取微信用户信息(.net版)
  • 原文地址:https://www.cnblogs.com/darkiller/p/2716493.html
Copyright © 2011-2022 走看看