我想将文本框控件与对象的属性绑定。 如下面的代码所示,它的工作正常,但文本框控件不绑定“name,index”中提到的asspciated属性。
以下是我的jqgrid代码:
$('#g).jqGrid({
ajaxGridOptions: {
error: function () {
$('#g')[0].grid.hDiv.loading = false;
alert('An error has occurred.');
}
},
url: '@Url.Action("Getvalues", "cntrollName")/' + 0,
postData: { ID: rowID },
datatype: 'json',
jsonReader: { root: 'List', page: 'Page', total: 'TotalPages', records: 'TotalCount', repeatitems: false, id: 'ID' ,''},
mtype: 'GET',
colNames: ['GrdID', Name],
colModel: [
{ name: ID, index: ID, hidden: true },
{ name: 'FullName', index: 'FullName', width: 150 },
{
name: 'txtVAlue', index: txtVAlue, width: 40, align: 'center', formatter: function (cellValue, option) {
return '<input type="text" name="txtBox" id="txt_' + option.rowId + '" />';
}
}],
pager: $('#g),
sortname: ID,
rowNum: 10,
width: '525',
height: '100%',
viewrecords: true,
beforeSelectRow: function (rowid, e) {
return true;
},
sortorder: 'desc'
}).navGrid('#g, { edit: false, add: false, del: false, search: false, refresh: false });
请建议我如何使用字段值绑定文本框。 还请建议我,是否可以更改jqgrid的颜色和字体大小。
谢谢
答案 0 :(得分:2)
txtVAlue
列的格式化程序不使用cellValue
。要修复格式化程序的代码,您可以使用类似
{
name: 'txtVAlue',
width: 40,
align: 'center',
formatter: function (cellValue, option) {
return '<input type="text" size="7" name="txtBox" id="txt_' + option.rowId +
'" value="' + cellValue +'"/>';
}
}
在正确创建<input>
元素后,您应该定义事件句柄,以保存输入中的更改。例如,您可以在loadComplete
回调中进行绑定。此外,您应该考虑实施onSortCol
回调。它将在之前被称为,网格将被排序(如果用户点击列标题)。
另外你应该
'
关闭'#g
(将其替换为'#g'
)。 Name
,ID
和rowID
也应该包含在'
中(或者应声明和分配变量)。pager
作为网格的ID。例如pager: '#g_pager
。带有id="g_pager"
的div应该放在某处。gridview: true
和autoencode: true
选项。