zoukankan      html  css  js  c++  java
  • AjaxPro无刷新选择列表框/下拉框[方便|稳定]

    前言
        看到网上很多关于ASP.NET的无刷新选择列表框,服务器端有的返回DataSet,有的返回DataView,有的用分隔符拼接一个长字符串返回,相应的客户端解析也是各有不同。DataSet+JS我是怎么也没弄成过,顺便在这里讲下返回DataSet不存在数据库关闭与否的问题。前端时间我上司写了一个这样的东西我改了下还蛮好用的,不敢独享,与大家分享一下吧:)

    正题
        服务器端代码:

    /// <summary>
        
    /// Ajax服务器端响应方法
        
    /// </summary>
        
    /// <param name="param"></param>
        
    /// <returns></returns>
        [AjaxPro.AjaxMethod]
        
    public List<List<string>> GetData(string param)
        {
            
    //获得数据
            Hashtable ht = DBHelper.GetDDLHashData(param);
            List
    <List<string>> list = new List<List<string>>();
            List
    <string> ilist;
            
    //迭代拷贝数据
            foreach (DictionaryEntry item in ht)
            {
                ilist 
    = new List<string>();
                ilist.Add(item.Key.ToString());
                ilist.Add(item.Value.ToString());
                list.Add(ilist);
            }
            
    return list;
        }

        代码基本上不难,用泛型来包装一个List返回给客户端。再看客户端代码:
    //添加Dropdownlist内容
    function AddItemsTosDropdown(array,obj)
    {
        
    try{
            
    var GetObj=document.getElementById(obj);
            GetObj.length
    =0;
            GetObj.options.add(
    new Option("请选择",""));
            
    for(var i=0;i<array.length;i++){
                GetObj.options.add(
    new Option(array[i][1],array[i][0]));
            }
        }
        
    catch(e){
            alert(e.message);
        }
    }
        调用js方法代码:
    function selectChangeData(selectedValue)
    {    
        
    try
        {
            
    //获得数据并添加到列表框
            AddItemsTosDropdown(ItemSeach.GetData(String(selectedValue)).value,"<%=ddlControl.ClientID%>");
        }
    catch(e){
            alert(e.message);
        }
    }

        OK!没有一点问题,复制代码只需要改下数据源获取就可以用了,比较通用,但是别忘了AjaxPro使用的基本设置。
    大家也可以在这个基础上加强,写得更通用一些:)

    补充说明:
        感谢上司,但是不知道上司是不是也是拿来主义,所有来个通用的:感谢代码的原作者:)

  • 相关阅读:
    51 Nod 1068 Bash游戏v3
    51 Nod Bash 游戏v2
    51 Nod 1073 约瑟夫环
    UVA 12063 Zeros and ones 一道需要好好体会的好题
    51 Nod 1161 Partial sums
    2018中国大学生程序设计竞赛
    UVA 11971 Polygon
    UVA 10900 So do you want to be a 2^n-aire?
    UVA 11346 Possibility
    python with as 的用法
  • 原文地址:https://www.cnblogs.com/over140/p/1222962.html
Copyright © 2011-2022 走看看