zoukankan      html  css  js  c++  java
  • Multiview + UserControl 中UserControl如何判断首次执行

    这个开发场景是使用MultiView构建多栏目多选项卡的后台布局,并用UserControl分割时出现的。

    因为MultiView在服务器端还是会初始化所有View中的所有控件,所以哪怕不是第一次展示的View也会执行,这个时候IsPostback判断就带来了问题。

    由于最后控件没有输出到客户端,所以这些控件的stata没有记录,显示的就都是空了。

    问题就归结到定制一个自己的  “IsPostBack“。

    首先在一定范围(视你的MultiView嵌套程度决定)的用户控件插入一个父类,然后添加

            public int BrowserTimes//记录下使用的次数
            {
                get
                {
                    return (int)(ViewState[this.GetType().FullName] ?? 0);
                }
                set 
                {
                    ViewState[this.GetType().FullName] = value;
                }
            }
            protected bool isFirstTime
            {
                get {
                    int times = (int)(ViewState[this.GetType().FullName] ?? 0);
                    BrowserTimes++;//保证只调用一次
                    return times == 0;
                }
            }

    然后在相应的Multiview页中

        void SetUserCenterControl(View v)
        {
            if (v.Controls.Count > 0 )
            {
                foreach (System.Web.UI.Control c in v.Controls)
                {
    
                    UserCenterControl ucc = c as UserCenterControl;
                    if (ucc != null)
                        ucc.BrowserTimes++;
                }
            }
        }
        #region Change Tab Events
    
        //Change Sections in User Center
        protected void linkUserCenterChangeTab(object sender, CommandEventArgs e)
        {
            View v = mvUserCenter.Views[mvUserCenter.ActiveViewIndex];
            SetUserCenterControl(v);
            mvUserCenter.ActiveViewIndex = int.Parse(e.CommandArgument.ToString());
            
    
        }
    作者:KKcat
        
    个人博客:http://jinzhao.me/
        
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    向工信部投诉中国联通、移动、电信等运营服务商的权威途径
    如何把本机Sql Sever数据库转移到虚拟主机sql数据库
    SQL Server 2005如何远程连接数据库?
    mssql server 2005还原数据库bak文件与“备份集中的数据库备份与现有的xx数据库不同”解决方法
    傲游5里保存的网址,在傲游4不能同步?外加几句吐槽
    mysql数据库基础的简单操作指南
    MVC框架模式技术实例(用到隐藏帧、json、仿Ajax、Dom4j、jstl、el等)
    Web---JSTL(Java标准标签库)-Core核心标签库、I18N国际化、函数库
    Jupyter Notebook导入自定义模块时ImportError
    Pandas数据处理(2): 数据透视表,行转列、列转行、以及一行生成多行
  • 原文地址:https://www.cnblogs.com/jinzhao/p/1617123.html
Copyright © 2011-2022 走看看