在以模态形式编辑时发送到控制器操作时,下拉选择值为“未定义” - jqgrid ASP.NET MVC3

时间:2012-08-07 21:45:09

标签: asp.net asp.net-mvc asp.net-mvc-3 jqgrid jqgrid-asp.net

我在jqgrid中有一个下拉选择列,我从控制器操作动态填充下拉列表。当我编辑一行并从下拉列表中选择一个值并单击Submit时,它会调用editurl中指定的控制器操作,但下拉选择列值为“undefined”。我暂时坚持这个问题,请任何建议真的有用。以下是我的javascript代码

jQuery("#list").jqGrid({
url: '/Home/Update/',
datatype: 'json',
mtype: 'POST',
colNames: [‘Name’, ‘Position’],
colModel: [
{name: ' Name', index: ' Name', width: 50, align: 'center', editable: true,   
searchoptions: { sopt: ['eq', 'ne', 'cn']} },           
{name: ' Position ', index: ' Position ', width: 75, align: 'center', editable: true, 
 edittype: 'select', formatter:'select',
 editoptions: {
 dataUrl: '/Home/GetNames/',                        
 style: "width: 120px",

 buildSelect: function (data) {
   var response = $.parseJSON(data); 
   var s = '<select>';
   for (var i = 0; i < response.rows.length; i++) {
    var r = response.rows[i];
    s += '<option value="' + r.Id + '">' + r.cell[0] + '</option>';
   }
   return s + "</select>";
  }
},
searchoptions: { sopt: ['eq', 'ne', 'cn']} }],
  ondblClickRow: function (row_id) {
                    jQuery(this).jqGrid('editGridRow', row_id);
                },
                pager: jQuery('#list'),
                height: '100%',
                rowNum: 200,
                sortname: ‘Name’,
                sortorder: "asc",
                editurl: '/Home/Create'
            });

1 个答案:

答案 0 :(得分:0)

我用dataEvents属性解决了这个问题,如下所示:

dataEvents: [{
            type: 'change',
            fn: function (e) {
            var i = $(e.target.value);
             }
       }]

希望这有助于某人。