使用editoptions使用JSON数据填充jqgrid下拉列表

时间:2016-08-05 15:44:37

标签: javascript jquery asp.net json jqgrid

我是网络开发的新手,我遇到了这个问题并且已经研究并尝试了许多其他方法无济于事。我需要使用数据库中的值填充jqgrid中的下拉列表。我用来做这个的网址给了我正确的JSON响应,如下所示(注意我只通过选定的字段发送):

{
  "serviceBranchResult": [
    {
      "branch_services": [],
      "queues": [],
      "service_description": null,
      "service_id": 2,
      "service_name": "Forex",
      "service_status": null
    },
    {
      "branch_services": [],
      "queues": [],
      "service_description": null,
      "service_id": 3,
      "service_name": "Tellers",
      "service_status": null
    }
  ]
}

当我尝试从下面的方法中执行下拉列表而不从url读取json时,它100%工作但是它不是动态的,我使用方法getAllSelectOptions(),我在网格中使用它看起来像这样:

function getAllSelectOptions() {

var services = {
'1':'Forex', '2':'Tellers', '3':'Consultants'};

return services;

}

我的网格代码:

url: "http://localhost:8080/service.svc/employees/3"
datatype: "json",
type: "GET",
contentType: "application/json; charset=utf-8",
height: '250',                           
colNames: ['ID', 'Name', 'Surname', 'Username', 'Email', 'Branch ID', 'User Type', 'Status', 'Speciality'],
                            colModel: [
                                    { name: 'employee_id', index: 'employee_id'},
                                    { name: 'employee_name', index: 'employee_name', editable: true },
                                    { name: 'employee_surname', index: 'employee_surname', editable: true },
                                    { name: 'employee_username', index: 'employee_username', editable: true },
                                    { name: 'employee_email', index: 'employee_email', editable: true },
                                    { name: 'branch_id', index: 'branch_id', editable: true },
                                    { name: 'user_type', index: 'user_type', editable: true },
                                    { name: 'employee_state', index: 'employee_state', editable: true },
                                    { name: 'employee_speciality', index: 'employee_speciality', editable: true,
                                        sortable: true,
                                        align: 'center',
                                        editable: true,
                                        cellEdit: true,
                                        edittype: 'select',
                                        formatter: 'select',
                                        editoptions: { value: getAllSelectOptions() }

                                    }],

                                rowNum: 20,
                                rowList: [10, 20, 30],
                                pager: '#pager_jqgrid',

这完美无缺。 但是,我使用以下方法来替换getAllSelectOptions()方法,它确实在我使用警告框时返回信息,但不起作用。

function availAtBranch() {


                            $.ajax({
                                type: "GET",
                                url: "http://localhost:8080/service.svc/branch/3",
                                dataType: "json",
                                success: function (data) {
                                    $.each(data.serviceBranchResult, function (i, obj) {
                                        //alert(obj.service_id + ":" + obj.service_name);
                                        var div_data = obj.service_name + ":" + obj.service_name;
                                        //alert(div_data);

                                    });

                                    return div_data;

                                }

                            });

我认为它与如何将JSON解析为editoptions方法或发送对象有关。如何使我的JSON采用getAllSelectOptions()方法中描述的格式,或者如何在下拉列表中显示我的数据。提前谢谢

0 个答案:

没有答案