JqG​​rid:编辑单元格后获取输入文本

时间:2018-01-30 09:40:44

标签: jqgrid

  

我正在尝试提供一个注释(文本框)供用户留下一些   消息。

这是我的Jqgrid

    $('#confirmTable').jqGrid({
        colModel: confirmTable,
        width: 870,
        shrinkToFit: false,
        rowNum: 20,
        loadonce:true
      })

这是colModel

var confirmTable = assignColModel(allColModel,[
{ name: 'storeId', hidden:true, key:true},
{ name: 'storeName', width: 150},
{ name: 'diffBeforeAdjust', width: 80 },
{ name: 'noAdjustAlert', width: 100, editable:true, formatter: 'noAdjustAlertFormatter' }
]);

列'noAdjustAlert'正在使用格式化程序,它将返回如下输入标记:

noAdjustAlertFormatter: function(cellvalue, options, rowObject){
    if(rowObject.noAdjustAlert=='Y'){
        return  '<input class="form-control input-sm" id="' + rowObject.storeId + 'alertInput" type="text">'
    }else{
        return '';
    }
}

Q1

  

如何从用户获取输入文本然后将其设置回jqgrid?

 What I got is always the original value from controller.

你可以帮我吗?

谢谢

2 个答案:

答案 0 :(得分:0)

Guriddo jqGrid documentation链接将为您提供问题的答案。

答案 1 :(得分:0)

你必须实现unformatter,它会反转格式化程序的逻辑。

var confirmTable = assignColModel(allColModel,[
    { name: 'storeId', hidden:true, key:true},
    { name: 'storeName', width: 150},
    { name: 'diffBeforeAdjust', width: 80 },
    { name: 'noAdjustAlert', width: 100, editable:true, formatter: 'noAdjustAlertFormatter', unformat:'noAdjustAlertUnFormatter'}
    ]);

以这种方式编写unformatter

var noAdjustAlertUnFormatter: function(inputval , options, cell){
   var inputval = $('input', cell).val();
   return inputval;
}

然后你可以使用getRowData来获取Grid行

var row = $('#confirmTable').getRowData(1);
var input value= row.noAdjustAlert;  // This will call the noAdjustAlertUnFormatter if you debug you can see it.