如何将属性绑定到jqgrid中的文本框控件

时间:2014-01-28 08:13:12

标签: jquery jqgrid mvcjqgrid

我想将文本框控件与对象的属性绑定。 如下面的代码所示,它的工作正常,但文本框控件不绑定“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的颜色和字体大小。

谢谢

1 个答案:

答案 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')。 NameIDrowID也应该包含在'中(或者应声明和分配变量)。
  • 您必须使用另一个选择器pager作为网格的ID。例如pager: '#g_pager。带有id="g_pager"的div应该放在某处。
  • 我建议您使用gridview: trueautoencode: true选项。