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使用的基本设置。
    大家也可以在这个基础上加强,写得更通用一些:)

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

  • 相关阅读:
    Web项目中JSP页面的一种调试方法与出现的问题 -- SpringMVC架构测试
    Web项目中用模板Jsp页面引入所有静态样式脚本文件(js,css等)
    setInterval()、clearInterval()、setTimeout()和clearTimeout()js计数器方法
    另类的package-info.java文件探讨
    myeclipse10 如何把代码预览的窗口去掉
    phpMyAdmin中mysql的创建数据库时的编码的问题
    Jquery 中 $('obj').attr('checked',true)失效的几种解决方案
    监听<input/>标签行为的方法总结
    新花生壳+tomcat(内网映射,无需设置路由器)建站攻略
    Hibernate学习笔记(一):mycelipse建立项目流程(未完成)
  • 原文地址:https://www.cnblogs.com/over140/p/1222962.html
Copyright © 2011-2022 走看看