【问题标题】:JQGrid - Select list value not set in edit mode using IEJQGrid - 使用 IE 选择未在编辑模式下设置的列表值
【发布时间】:2011-09-25 00:21:24
【问题描述】:

我正在使用 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>

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

为了澄清,问题是如果单元格的值为“Option3”,在 IE 中进入编辑模式时,选择输入将显示“None”,因为它是选定的项目,而不是“Option3”。 Firefox 将正确地将“Option3”显示为所选项目。

有什么建议吗?

更新:

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

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 = '';
         }
    }
}

【问题讨论】:

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


    【解决方案1】:

    您使用的是哪个版本?

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

    我刚刚在 IE7、IE8 和 IE9 上成功测试了这个

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-07
      相关资源
      最近更新 更多