【问题标题】:JQGRID inline dropdown binding via AJAX通过 AJAX 的 JQGRID 内联下拉绑定
【发布时间】:2012-06-21 09:13:23
【问题描述】:

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;
})();

首先,我得到下面的消息框...

然后我得到错误

谁能告诉我如何使它正确? 我们将不胜感激每一个建议。

【问题讨论】:

    标签: c# jquery ajax json jqgrid


    【解决方案1】:

    格式错误。应该是:

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

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

    这是一个工作示例。信息取自数据库,然后在相应的控制器操作中格式化。

    <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>
    

    很抱歉格式很糟糕,但我无法发布图片... 希望对您有所帮助。

    【讨论】:

    • 感谢@smp 的帮助,&lt;select&gt;&lt;option value=“1”&gt; ... 不是我的代码。它是由 JQGRID 根据我的 JSON 字符串 {"1":"Computing","2" ... 自动生成的
    • 那么,我请求你,请再次阅读我的问题。你会看到有两种方法我尝试绑定下拉列表。
    • 第一种方式是使用静态 JSON 字符串,然后一切正常,但是当我通过 ajax 使用动态 JSON 字符串时,就会出现错误。
    • 再次感谢您的帮助@smp。最后我知道我的代码的哪一部分给了我这个错误。问题线在这里success: function (response, textStatus, jqXHR) { list = response; },
    • 我确实需要转换JSON格式list = $.parseJSON(response);,所以我改变了它,现在可以了。无论如何,我很感激你的帮助。谢谢@smp
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-25
    • 2013-01-09
    相关资源
    最近更新 更多