通过AJAX进行JQGRID内联下拉绑定

时间:2012-06-21 09:13:23

标签: c# jquery ajax json jqgrid

enter image description here jQuery(document).ready(function () {

var grid = $("#list");

    var AllCategory={"1":"Computing","2":"Cooking","10":"Fiction","3":"Finance","6":"Language","4":"Medical","11":"News","8":"Philosophy","9":"Religion","7":"Sport","5":"Travel"};


    grid.jqGrid({
        url: '/SupplierOrder/Select_SupplierOrderDetailByX/',
        editurl: "clientArray",
        datatype: 'json',
        mtype: 'GET',
        colNames: ['Category', 'Qty'],
        colModel: [
                      {
                          name: 'Category', index: 'CategoryID', align: 'left', editable: true, edittype: "select", formatter: 'select',
                          editoptions: { value: AllCategory }, editrules: { required: true }
                      },
                      { name: 'Qty', index: 'Qty', width: 40, align: 'left', editable: true, edittype: "text", editoptions: { size: "35", maxlength: "50"} }
                 ],
        pager: jQuery('#pager'),
        rowNum: 10,
        rowList: [5, 10, 20, 50],
        sortname: '',
        sortorder: '',
        viewrecords: true,
        autowidth: true,
        autoheight: true,
        imgpath: '/scripts/themes/black-tie/images',
        caption: 'Supplier Order Detail'
    })
    grid.jqGrid('navGrid', '#pager', { edit: false, add: false, del: true, refresh: false, search: false }, {}, {}, {}, {});
    grid.jqGrid('inlineNav', '#pager', {
        addtext: "Add",
        edittext: "Edit",
        savetext: "Save",
        canceltext: "Cancel"
    });

}); 

这是我的JQGrid。

然后,我删除下面的代码......

var AllCategory={"1":"Computing","2":"Cooking","10":"Fiction","3":"Finance","6":"Language","4":"Medical","11":"News","8":"Philosophy","9":"Religion","7":"Sport","5":"Travel"};

替换为以下代码,以便我可以获得动态数据......

var AllCategory = (function () {
var list = null;

$.ajax({
async: false,
global: false,
type: "POST",
url: 'Category_Lookup',
dataType: 'json',
data: {},
success: function (response, textStatus, jqXHR) {
    list = response;
},
error: function (jqXHR, textStatus, errorThrown) {
    alert("jqXHR.responseText --> " + jqXHR.responseText + "\njqXHR --> " + jqXHR + "\ntextStatus --> " + textStatus + " \nerrorThrown --> " + errorThrown);
}
});
alert(list);

return list;
})();

首先,我在消息框下面...

enter image description here

然后我得到错误

enter image description here

有谁能告诉我如何使其正确? 每个建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

格式错误。它应该是:

<select><option value=“1”>One</option> <option value=“2”>Two</option></select>

检查http://www.trirand.com/jqgridwiki/doku.php?id=wiki:search_config(dataUrl)。

这是一个工作示例。信息来自数据库,然后在相应的Controller操作中进行格式化。

<th role="columnheader" class="ui-state-default ui-th-column ui-th-ltr">
 <div style="width:100%;position:relative;height:100%;padding-right:0.3em;">
  <select name="TypeCode" id="gs_TypeCode" style="width: 100%; ">
   <option></option>
   <option value="1">cosas!</option>
   <option value="2">mascosas</option>
   <option value="3">yast</option>
   <option value="4">tiparraco</option>
  </select>
 </div>
</th>

抱歉这个糟糕的格式,但我无法发布图片...... 希望它有所帮助。