jqGrid中的Dependent ComboBox

时间:2011-04-24 07:50:11

标签: php jqgrid

我正在使用jqGrid和PHP。

我的jqGrid中有两个组合框。当我在jqGrid中使用Form添加新行或编辑前一行时,我想要从第一个中选择一个值时更改第二个组合Box值。

是否可以在jqGrid中使用。请帮我一个工作实例。

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

我假设你的两个组合框都使用数据库作为他们的数据。

在第一个组合框的编辑选项中,请使用以下代码:

editoptions: {
   value: "1:One;2:Two",
   dataEvents: [{
       type: "change",
       fn: function(e) {
          $("#your_grid").setColProp("second_combo", { 
              editoptions: { value: "-1:--Select One--"} 
          });
          var v = parseInt($(e.target).val(), 10);
          $.ajax({
             url: "path/to/your/controller/"+v,
             dataType: "html",
             success: function(data) {
                if ($(e.target).is(".FormElement")) {
                var form = $(e.target).closest("form.FormGrid");                                                       
                $("select#second_combo.FormElement", form[0]).html(data);
                }
                else {
                   // inline editing
                   var row = $(e.target).closest("tr.jqgrow");
                   var rowId = row.attr("id");
                   $("select#" + rowId + "_second_combo", row[0]).html(data);
                }
             }
       });
     }
  }] 
}   

现在,在您的网格的添加修改选项中,使用以下内容:

recreateForm:true   

您的控制器应按以下语法返回数据:

  <option value="val">Display</option>

尽可能多。

希望它对你有所帮助。