我正在尝试提供一个注释(文本框)供用户留下一些 消息。
这是我的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.
你可以帮我吗?
谢谢
答案 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.