zoukankan      html  css  js  c++  java
  • Ajax Accordion控件中如何控制回传回来时仍然显示刚才选中的项

    Ajax Accordion控件中如何控制回传回来时仍然显示刚才选中的项

      在使用Accordion控件时,回传回来时总是显示第一项。当不同用户显示不同的项时,如何控制回传回来后仍然选中刚才点击的项目。

    下边是解决方法。

        1)我们将每个aspx页面的所在项目的文件夹名与对应的AccordionPane的ID保存起来。此步的目的主要是通目aspx所在文件夹名找到AccordionPane
        2)回传回来后根据URL路径中的文件夹名称与刚刚保存的值作比对。然后显示相应的项。

    列子如下:

      1) aspx页面添加Accordion控件,其源码摘要如下: 

       项目文件夹如下图:

     

     
     2) 将每个aspx页面所在项目文件夹名与AccordionPane ID对应,并保存。 
            //定义菜单列表
            private static IDictionary<stringstring> _MenuList { getset; }
            
    protected void Page_Load(object sender, EventArgs e)
            {
                
    /*
                   菜单列表格式为<文件夹目录名,AccordionPane ID>
                   如下边的workflowdesigner文件夹对应ID为apWorkflow的AccordionPane
                
    */
                _MenuList 
    = new Dictionary<stringstring>() { 
                    { 
    "workflowdesigner""apWorkflow" },
                    { 
    "reporting""apReporting" },
                    { 
    "businessmanager""apBusiness" }, 
                    { 
    "message","apMessage" },
                    { 
    "organizationmanager""apOrgnization" },
                    { 
    "systemlog","apSystemLog"},
                    {
    "modulemanagemanet","apModule"}
                };
                SetMenueActiveIndex();
            }


    3)通过URL路径得到文件夹名,对通过比对,找出要选中的项。
            
    /// <summary>
            
    /// 设置当前选中项
            
    /// </summary>
           private void SetMenueActiveIndex()
            {
                
    string currentPage = GetCurrentUrl();
                
    if (!string.IsNullOrEmpty(currentPage))
                {
                    
    string currentPageLower = currentPage.ToLower();
                    
    if (_MenuList.Keys.Contains(currentPageLower))
                    {
                        
    //记录index
                        int index = -1;
                        
    foreach (var item in mainMenue.Panes)
                        {
                            
    //判断是否已显示
                            if (item.Visible == true)
                            {
                                index
    ++;
                                
    if (item.ID.ToLower() == _MenuList[currentPageLower].ToLower())
                                {
                                    
    //设置需要显示的项
                                    mainMenue.SelectedIndex = index;
                                    
    break;
                                }
                            }
                        }
                    }
                }         
            }

            
    /// <summary>
            
    /// 根据当前链接,得到页面所在的目录名
            
    /// </summary>
            
    /// <returns></returns>
            private string GetCurrentUrl()
            { 
                
    string resultString = "";
                
    string[] splitList = Request.Url.AbsolutePath.Split('/');
                
    if (splitList.Length > 2)
                {
                    
    if (!string.IsNullOrEmpty(splitList[splitList.Length - 2]))
                    {
                        resultString 
    = splitList[splitList.Length - 2];
                    }
                }
                
    return resultString;
            }


  • 相关阅读:
    微信门户开发框架-使用指导说明书
    在Winform界面使用自定义用户控件及TabelPanel和StackPanel布局控件
    C++迟后联编和虚函数表
    PaX介绍——针对linux kernel的一个加固版本的补丁,是这个星球上有史以来最极端和最优秀的防御系统级别0day的方案
    侧信道攻击——基于从密码系统的物理实现中获取的信息而非暴力破解法或是算法中的理论性弱点(较之密码分析)。例如:时间信息、功率消耗、电磁泄露或甚是声音可以提供额外的信息来源作为破解输入
    默克尔树(merkle tree)——就是hash树,比特币区块链里用于校验完整性的
    spark RDD pipe 调用外部脚本
    AIDE(高级入侵检测环境)——就是讲文件的hash值存到db中,然后比较是否被篡改过
    完整性度量架构(IMA)介绍与分析——当应用程序运行、动态链接库加载、内核模块加载时,将用到的代码和关键数据(如配置文件和结构化数据)做一次hash比较的感觉
    AES中的ECB、CTR、MAC、GMAC、GCM
  • 原文地址:https://www.cnblogs.com/scottckt/p/1815025.html
Copyright © 2011-2022 走看看