有谁知道如何获取 JQGrid 选定行的单元格值?我在 JQGrid 中使用 mvc,我想访问所选行的隐藏列的值?
6 回答
首先,您可以获取rowid
所选行的getGridParam
方法和'selrow'作为参数,然后您可以使用getCell从相应列中获取单元格值:
var myGrid = $('#list'),
selRowId = myGrid.jqGrid ('getGridParam', 'selrow'),
celValue = myGrid.jqGrid ('getCell', selRowId, 'columnName');
'columnName'
应该与您在 的'name'
属性中使用的名称相同colModel
。如果您需要来自所选行的许多列的值,您可以使用getRowData而不是getCell。
你也可以用这种方式
var rowId =$("#list").jqGrid('getGridParam','selrow');
var rowData = jQuery("#list").getRowData(rowId);
var colData = rowData['UserId']; // perticuler Column name of jqgrid that you want to access
只需添加,您还可以根据 rowID 加上列索引(而不是列名称)检索 jqGrid 单元格值:
因此,要获取主键 ID 为 1234 的行的第四列(列索引 #3)中的值,我们可以使用以下命令:
var rowID = 1234;
var columnIndex = 3;
var cellValue = $("#" + rowID).find('td').eq(columnIndex).text();
顺便说一句,关于一个完全不相关的话题(但请不要投票给我):
我没有意识到您可以相当容易地将文本框链接到您的 jqGrid,这样您的用户就可以进行即时搜索,而无需打开“搜索”对话框。
为此,您需要一些像这样的 HTML:
<input type="text" name="employeeName" id="employeeName" style="width:250px" />
<!-- This will be my jqGrid control and pager -->
<table id="tblEmployees"></table>
<div id="pager"></div>
还有一些像这样的 JavaScript:
$("#employeeName").on('change keyup paste', function () {
SearchByEmployeeName();
});
function SearchByEmployeeName()
{
// Fetch the text from our <input> control
var searchString = $("#employeeName").val();
// Prepare to pass a new search filter to our jqGrid
var f = { groupOp: "AND", rules: [] };
// Remember to change the following line to reflect the jqGrid column you want to search for your string in
// In this example, I'm searching through the UserName column.
f.rules.push({ field: "UserName", op: "cn", data: searchString });
var grid = $('#tblEmployees');
grid[0].p.search = f.rules.length > 0;
$.extend(grid[0].p.postData, { filters: JSON.stringify(f) });
grid.trigger("reloadGrid", [{ page: 1 }]);
}
这对我来说是一个真正的游戏规则改变者......它确实让 jqGrid 更加用户友好。
用户可以立即开始输入他们的搜索字符串,而不需要打开搜索对话框,记住将运算符更改为“包含”,然后开始输入,然后再次关闭搜索对话框。
使用“selrow”获取选中的行ID
var myGrid = $('#myGridId');
var selectedRowId = myGrid.jqGrid("getGridParam", 'selrow');
然后使用 getRowData 获取索引 selectedRowId 处的选定行。
var selectedRowData = myGrid.getRowData(selectedRowId);
如果 jqGrid 上的多选设置为 true,则使用“selarrrow”获取选定行的列表:
var selectedRowIds = myGrid.jqGrid("getGridParam", 'selarrrow');
使用循环迭代选定行的列表:
var selectedRowData;
for(selectedRowIndex = 0; selectedRowIndex < selectedRowIds .length;
selectedRowIds ++) {
selectedRowData = myGrid.getRowData(selectedRowIds[selectedRowIndex]);
}
你必须声明 de vars ...
var selectedRowId = $('#list').jqGrid ('getGridParam', 'selrow');
var columnName = $('#list').jqGrid('getCell', selectedRowId, 'columnName');
var nombre_img_articulo = $('#list').jqGrid('getCell', selectedRowId, 'img_articulo');
只需结帐:
解决方案 1:
在子网格函数中,您必须编写以下内容:
var selectid = $(this).jqGrid('getCell', row_id, 'id');
alert(selectid);
row_id
您在子网格中定义为参数的变量在哪里。并且id
是您要获取单元格值的列名。
解决方案 2:
如果您在警报中获取 Jqgrid Row Id 然后将您的主键 ID 设置为key:true
In ColModels。因此,您将在警报中获得数据库 ID 的值。像这样 :
{name:"id",index:"id",hidden:true, width:15,key:true, jsonmap:"id"},