这个不是有个select指定选择项的么?当数据绑定后指定你想要的那个code,然后用初始化一个变量(用来存储code)的值,
把“b”下拉框的绑定写在一个方法里面,在"a" 的onSelect调用那个方法,把code传过去嘛。才疏学浅,对你描述的问题不是很清楚额。是联动么?

解决方案 »

  1.   

    a同时增加onBeforeLoad和onSelect就好了吧。又不冲突。。
      

  2.   

    我的意思是:
    比如‘a’下拉框有(bid,bcode)属性,对应值(‘1’,‘A’)和(‘2,B’),当‘a’下拉框选择‘A’时,可以把‘1’作为参数给'b'下拉框当查询语句的条件
      

  3.   

    ‘a’下拉框有(bid,bcode)属性,对应值(‘1’,‘A’)和(‘2,B’);
    当‘a’下拉框选择‘A’时,可以把‘1’作为参数给'b'下拉框当查询语句的条件
    同时用,‘a’下拉框会参照onBeforeLoad时提供的参数当做查询条件,
    但是当我选择‘a’下拉框的‘A’时,怎么把‘1’传给‘b’,然后'b'又怎么去查呢
      

  4.   

    本帖最后由 showbo 于 2014-07-09 09:25:23 编辑
      

  5.   

    解决了么?你可以当a列表选择项发生变化时调用绑定b下拉列表的方法,实现b下拉列表数据的重新绑定
     $("#a").change(function () {
      var a_bid = $("#a").children('option:selected').val();
    var  a_bcode= $("#a").children('option:selected').text();
       b_data(a_bid);
       }
    function   b_data(a_bid){
      $("#b").empty();//先清空b下拉列表下的项
    ....后面自己可以写了吧。
    }   //这个是绑定b列表的函数
      

  6.   

    还没有解决
    现在是‘b’下拉框的问题
    我在选择‘a’中选项后,可以把参数传过去,用5楼的方法9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    $('#a').combobox({
        url : '../Ac/queryCode',
        valueField : 'bid',
        textField : 'bcode',
        onBeforeLoad : function(param) {
            param.codetype = 'autistate';// 参数:CodeType值.
        },
        onSelect : function(rec) {
    alert(rec.bid+'\n'+rec.bcode)////////////////////////
            queryList(rec.bid);//////////
        }
    });
     
     
    function queryList(id) {///////
        $.post("queryCode", {id:id},///////////
                function(data) {
      alert(data.code)
                    $('#b').attr("code", data.code);
                });
    }
     现在的问题是,1,我后台返回一个map,map.put("code","7");但是data.code是没有值的,  $('#b').attr("code", data.code);
    下拉框,没有值
    2,我返回List<Map>类型。然后方法改成
    function queryList(id) {///////
        //$.post("queryCode", {id:id},///////////
          //      function(data) {
      //alert(data.code)
               //     $('#b').attr("code", data.code);
                //});
    $('#b).combobox({
        url : 'queryCode,
        valueField : 'bid',
        textField : 'code',
        onBeforeLoad : function(param) {
            param.id = id;// 参数:CodeType值.
        }
    });
    }下拉框也没有值
      

  7.   

    我用了这方法,后台传回map类型map.put('code','6');但是我alert(data.code)时候没有值
    然后我在后台代码
    List<Map> list=xxxxx();
    JSONArray json;
    return json.toJSONStrng();返回String类型返回值在控制台打印是这样的[{"Code":"7","Codename":"1"},{"Code":"9","Codename":"9"}]
    然后我修改了 queryList方法
     
    function queryList(id) {///////
        //$.post("queryCode", {id:id},///////////
          //      function(data) {
      //alert(data.code)
               //     $('#b').attr("code", data.code);
                //});
    $('#b).combobox({
        url : 'queryCode,
        valueField : Code,
        textField : 'Codenae',
        onBeforeLoad : function(param) {
            param.id = id;// 参数:CodeType值.
        }
    });
    }但是‘b’还是没有下拉值
      

  8.   

    还没有解决
    现在是‘b’下拉框的问题
    我在选择‘a’中选项后,可以把参数传过去,用5楼的方法9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    $('#a').combobox({
        url : '../Ac/queryCode',
        valueField : 'bid',
        textField : 'bcode',
        onBeforeLoad : function(param) {
            param.codetype = 'autistate';// 参数:CodeType值.
        },
        onSelect : function(rec) {
    alert(rec.bid+'\n'+rec.bcode)////////////////////////
            queryList(rec.bid);//////////
        }
    });
     
     
    function queryList(id) {///////
        $.post("queryCode", {id:id},///////////
                function(data) {
      alert(data.code)
                    $('#b').attr("code", data.code);
                });
    }
     现在的问题是,1,我后台返回一个map,map.put("code","7");但是data.code是没有值的,  $('#b').attr("code", data.code);
    下拉框,没有值
    2,我返回List<Map>类型。然后方法改成
    function queryList(id) {///////
        //$.post("queryCode", {id:id},///////////
          //      function(data) {
      //alert(data.code)
               //     $('#b').attr("code", data.code);
                //});
    $('#b).combobox({
        url : 'queryCode,
        valueField : 'bid',
        textField : 'code',
        onBeforeLoad : function(param) {
            param.id = id;// 参数:CodeType值.
        }
    });
    }下拉框也没有值在a下拉列表里面绑定的  value ,text   都会获取到的。。
    使用我的方法试试,每次a选项发生变化的时候就把b重新绑定一遍
      

  9.   

    还没有解决
    现在是‘b’下拉框的问题
    我在选择‘a’中选项后,可以把参数传过去,用5楼的方法9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    $('#a').combobox({
        url : '../Ac/queryCode',
        valueField : 'bid',
        textField : 'bcode',
        onBeforeLoad : function(param) {
            param.codetype = 'autistate';// 参数:CodeType值.
        },
        onSelect : function(rec) {
    alert(rec.bid+'\n'+rec.bcode)////////////////////////
            queryList(rec.bid);//////////
        }
    });
     
     
    function queryList(id) {///////
        $.post("queryCode", {id:id},///////////
                function(data) {
      alert(data.code)
                    $('#b').attr("code", data.code);
                });
    }
     现在的问题是,1,我后台返回一个map,map.put("code","7");但是data.code是没有值的,  $('#b').attr("code", data.code);
    下拉框,没有值
    2,我返回List<Map>类型。然后方法改成
    function queryList(id) {///////
        //$.post("queryCode", {id:id},///////////
          //      function(data) {
      //alert(data.code)
               //     $('#b').attr("code", data.code);
                //});
    $('#b).combobox({
        url : 'queryCode,
        valueField : 'bid',
        textField : 'code',
        onBeforeLoad : function(param) {
            param.id = id;// 参数:CodeType值.
        }
    });
    }下拉框也没有值在a下拉列表里面绑定的  value ,text   都会获取到的。。
    使用我的方法试试,每次a选项发生变化的时候就把b重新绑定一遍
    现在我可以找到后台‘b’的数据,但是就是不知道如何在前台显示出来,而且是下拉框,不止一个值的
      

  10.   

    还没有解决
    现在是‘b’下拉框的问题
    我在选择‘a’中选项后,可以把参数传过去,用5楼的方法9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    $('#a').combobox({
        url : '../Ac/queryCode',
        valueField : 'bid',
        textField : 'bcode',
        onBeforeLoad : function(param) {
            param.codetype = 'autistate';// 参数:CodeType值.
        },
        onSelect : function(rec) {
    alert(rec.bid+'\n'+rec.bcode)////////////////////////
            queryList(rec.bid);//////////
        }
    });
     
     
    function queryList(id) {///////
        $.post("queryCode", {id:id},///////////
                function(data) {
      alert(data.code)
                    $('#b').attr("code", data.code);
                });
    }
     现在的问题是,1,我后台返回一个map,map.put("code","7");但是data.code是没有值的,  $('#b').attr("code", data.code);
    下拉框,没有值
    2,我返回List<Map>类型。然后方法改成
    function queryList(id) {///////
        //$.post("queryCode", {id:id},///////////
          //      function(data) {
      //alert(data.code)
               //     $('#b').attr("code", data.code);
                //});
    $('#b).combobox({
        url : 'queryCode,
        valueField : 'bid',
        textField : 'code',
        onBeforeLoad : function(param) {
            param.id = id;// 参数:CodeType值.
        }
    });
    }下拉框也没有值在a下拉列表里面绑定的  value ,text   都会获取到的。。
    使用我的方法试试,每次a选项发生变化的时候就把b重新绑定一遍
    现在我可以找到后台‘b’的数据,但是就是不知道如何在前台显示出来,而且是下拉框,不止一个值的
    后台返回的是   json格式么?
      

  11.   

    可以使用ajax 获取后台json 然后绑定前台。需要Dome么?
      

  12.   


    JSONArray jsonArray;
    try {
    List res=new ArrayList();
    List list=manCode.Service.queryCode(codetype);
    jsonArray = new JSONArray();
    jsonArray.addAll(res);
    System.out.println( jsonArray.toJSONString());
      return jsonArray.toJSONString();
    } catch (Exception e) {
    e.printStackTrace();
    }后台代码
    需要demo
      

  13.   


      //返回普通json
            public static string DataSetToJson(DataSet ds)
            {
                string json = string.Empty;
                try
                {
                    if (ds.Tables.Count == 0)
                        throw new Exception("DataSet中Tables为0");
                    json = "{";
                    for (int i = 0; i < ds.Tables.Count; i++)
                    {
                        json += "\"T" + (i + 1) + "\":[";
                        for (int j = 0; j < ds.Tables[i].Rows.Count; j++)
                        {
                            json += "{";
                            for (int k = 0; k < ds.Tables[i].Columns.Count; k++)
                            {
                                json += "\"" + ds.Tables[i].Columns[k].ColumnName + "\":\"" + ds.Tables[i].Rows[j][k].ToString() + "\"";
                                if (k != ds.Tables[i].Columns.Count - 1)
                                    json += ",";
                            }
                            json += "}";
                            if (j != ds.Tables[i].Rows.Count - 1)
                                json += ",";
                        }
                        json += "]";
                        if (i != ds.Tables.Count - 1)
                            json += ",";
                    }
                    json += "}";
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
                return json;
            }
    //上面的是根据数据库查询的数据返回的json的方法。
    返回的格式是这样的{"T1":[
              {"ID1":"Value1","ID2":"Value2"}
             ,{"ID1":"Value1","ID2":"Value2"}
             , {"ID1":"Value1","ID2":"Value2"}
              ]
    }数据库中获得的表:
    然后你可以使用ajax访问 后台方法返回string 
    1、using System.Web.Services;         《--------
    2、访问的方法为静态方法                                   |
    3、在静态方法上面加  [WebMethod]   《--------ajax 这样写 $.ajax({
                    type: "post",
                    async: false,
                    url: "HospitalSys.aspx/GetButtonOne",
                    data: "{'ModuleID':'YYGL(1)'}",
                    dataType: "json",
                    contentType: "application/json;charset=utf-8",
                    success: function (json) {
                        var str = "";
                        if (typeof json.d == 'string') {
                            arr = JSON.parse(json.d).T1;
                        } else {
                            arr = json.d.T1;
                        }
                 var id1=arr[0].ID1     //这里就可以直接调用,也可以循环的通过 jQuery的 append 添加到select中
             }   
          });