JQGrid - 使用IE选择未在编辑模式下设置的列表值

时间:2011-06-29 09:54:47

标签: asp.net-mvc entity-framework jqgrid

我正在使用MVC创建一个网页,JQGrid显示一些数据。网格使用内联编辑,其中一列在编辑模式下成为选择输入。当我开始编辑时,选择输入似乎不采用单元格的值,而是初始选择的项目是列表中的第一个。这种情况发生在IE中,但在使用Firefox时,所选项目正确获取单元格的值。

我按如下方式定义我的列: -

{ name: 'MyColumn', index: 'MyColumn', width: 80, align: 'left', editable: true,sortable: true,hidden: false,Key: false, edittype: 'select', editoptions: { value: "0:None;1:Option1;2:Option2;3:Option3", width: 'auto',size: 20, maxlength: 30}}

我使用json帮助程序类填充网格,将DataTable转换为字符串。我的控制器类中的数据绑定功能如下所示: -

DataTable results = GetResults(sidx, sord, startIndex, endIndex, out resultsCount);
        return Content(JsonHelper.JsonForJqgrid(results, rows, resultsCount, page), "application/json");

我使用firebug测试生成的html,IE和FF在触发编辑模式后给出以下内容。

<td aria-describedby="MyGrid_MyColumn" title="Option3" style="text-align: left; color: red;" role="gridcell">
   <select role="select" width="auto" formatter="select" size="1" maxlength="30" id="3_MyColumn" name="MyColumn" class="editable">
      <option role="option" value="0">None</option>
      <option role="option" value="1">Option1</option>
      <option role="option" value="2">Option2</option>
      <option role="option" value="3">Option3</option>
    </select>
</td>

我的数据表当前获取列的值为“text”值,因此FF将单元格的值与select输入的“text”值匹配。我有能力将值作为select输入中使用的实际值,但这意味着单元格在不处于编辑模式时显示值而不是文本(并且在IE中的编辑模式下仍然不匹配)。 / p>

为了澄清,问题是如果单元格的值为'Option3',则在IE中进入编辑模式时,选择输入将显示“无”作为其选择的项目而不是“选项3”。 Firefox会正确显示“Option3”作为选定项目。

任何提示?

更新

找到解决方案,我不会称之为答案。我更新了我的selectRow函数,并在进入编辑模式之前收集了单元格值,然后使用所选选项更新了下拉列表。感觉有点像黑客,但它确实有效。

onSelectRow: function(id){
    if (id){
        if (id != lastSel){
            jQuery('#MyGrid').restoreRow(lastSel);
            var rowdata = jQuery('#ShippingListGrid').getRowData(id);
            jQuery('#MyGrid').editRow(id, true, true, true, '/EditURL/', null, true, true);
            $("#" + id + "_MyColumn").val($("#" + id + "_MyColumn option:contains('" + rowdata.MyColumn + "')").val());
            lastSel = id;
         } 
         else { 
            lastSel = '';
         }
    }
}

1 个答案:

答案 0 :(得分:0)

您使用的是哪个版本?

试试upgrading to v4.1.1。我遇到了同样的问题,升级后修复了。

我刚刚在IE7,IE8和IE9

上成功测试了这个