天天看点

AjaxPro无刷新选择列表框/下拉框[方便|稳定]

服务器端代码:

/// <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){

OK!没有一点问题,复制代码只需要改下数据源获取就可以用了,比较通用,但是别忘了AjaxPro使用的基本设置。

大家也可以在这个基础上加强,写得更通用一些:)

继续阅读