jquery - Jqgrid。从键值中找到rowId

标签 jquery jqgrid jqgrid-asp.net

我有一个基本的 jqgrid 实现。

$('.fsJqGrid').jqGrid({
    datatype: "local",
    height: 175,
    colNames: ['FeatureId', 'Name', ''],
    colModel: [
        { name: 'FeatureId', index: 'FeatureId', width: 75, align: 'left',
          sorttype: "int", hidden: true, key: true },
        { name: 'Name', index: 'Name', width: 180 },
        { name: 'tools', index: 'tools', width: 150}
    ]
});

function FeatGridAddRow(jqTableName, feature) {
    ///<summary>Adds a row of data to a Feature JQGrid</summary>
    var RowId = $("#" + jqTableName).jqGrid('getGridParam', 'reccount');

    feature.tools = 'MyToolHtml';

    $("#" + jqTableName).jqGrid('addRowData', RowId, feature); //jqgrid
} //function

function FeatGridUpdateRow(featureId, newName) {
    ///<summary>Updates JQGrid data row</summary>

    //I need to find the rowId, based on the featureId parameter
    var rowId = 0;      

    //update grid with new data
    $("#tabFS0").jqGrid('setRowData' , rowId , {Name: newName});
} //function

我希望能够更新一行数据,但需要知道 rowId 才能执行此操作。

我拥有的唯一数据是键值(featureId)。

所以我正在寻找一种根据我所知道的主键值查找 rowId 的方法。

我一直在查看 jqgrid 文档,但没有看到明显的方法。


更新:答案是使用我的表 PK 作为 rowId。

所以,在add函数中;

var RowId = $("#" + jqTableName).jqGrid('getGridParam', 'reccount');
$("#" + jqTableName).jqGrid('addRowData', RowId, feature);

变成了

$("#" + jqTableName).jqGrid('addRowData', feature.FeatureId, feature);

最佳答案

因为您使用 key:true 定义了 FeatureId,所以每行的 id 将与 FeatureId 列中的值相同。如果您不需要它,您应该删除 key:true 设置。

您没有发布您使用的完整代码示例,所以我认为您在 jqGrid 中填充数据的代码位置有问题。我不明白你所面临的场景。您从哪里接收要填充到网格中的数据?您一次只收到一行吗?您是从服务器、本地数据源还是用户输入获取日期?填充行的最有效方法是使用 jqGrid 的 data 参数(请参阅 this answer )。此外,jqGrid 有丰富的可能性来填充每个 ajax 请求的网格。

为了能够回答有关数据编辑的主要问题,您应该描述上下文。您是否需要用户能够修改数据?然后,您可以使用内联编辑,表单编辑或单元格编辑(请参阅 documentation 和“行编辑”/“输入类型”和“实时数据操作”/“导航器”,选择行并单击 the official jqGrid demo 上导航器中的编辑按钮)。如果您想修改不是由用户更改的行,您可以使用诸如 setRowData 之类的函数。

因此,如果您详细解释一下您的应用程序的用途以及如何使用 jqGrid,我可以给您写更多引用资料。

关于jquery - Jqgrid。从键值中找到rowId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4408284/

相关文章:

jquery - 如何更改 Bootstrap 中错误文本的颜色?

javascript - AJAX CAll 天气 API 不起作用

javascript - 使用window.onbeforeunload,是否可以知道发生了哪个事件?

javascript - 如何在 jqgrid 编辑表单中捕获 tinyMCE 中的 Ctrl+S 键

javascript - 如何检测页面上的所有jqGrid是否已加载?

php - jquery parseJSON 处理 php 错误

jquery - 分页在带有 MVC 的 JqGrid 中不起作用

jquery - 是否可以在 jqgrid Treegrid 上设置交替行背景色

jquery - jqgrid构建后如何设置postData?

javascript - JQuery 网格寻呼机不可见