gpt4 book ai didi

jquery - jqGrid获取多个选中行单元格值

转载 作者:行者123 更新时间:2023-12-01 02:54:53 24 4
gpt4 key购买 nike

我的 jqGrid 脚本:

<script>
jQuery("#task-grid").jqGrid({
datatype: "json",
height: 'auto',
rowNum: 20,
rowList: [20,30],
colNames:['ID','RESOURCE','ROLE','SITE', 'ALLOC. TYPE', 'UNIT (%)','HOURS'],
colModel:[
{name:'ID',key:true,index:'ID', width:50, align:'center',search:false,hidden: true},
{name:'RESOURCE',index:'RESOURCE', width:150, sorttype:"text",align:'center',search:true},
{name:'ROLE',index:'ROLE',width:120 ,align:'center',search:false},
{name:'SITE',index:'SITE', width:120, align:'center',search:false},
{name:'ALLOC. TYPE',index:'ALLOCATION_TYPE', align:'center',width:120,search:false },
{name:'UNIT',index:'UNIT',align:'center',search:false},
{name:'HOURS',index:'HOURS', search:false, align:'center',sortable:false,editable:true}
],
pager: "#page",
shrinkToFit :true,
autowidth: true,
viewrecords: true,
sortname: 'RESOURCE',
sortorder: "asc",
multiselect: true,
cellEdit: true,
cellsubmit : 'clientArray',
caption: "Resource List"
}).navGrid('#page',{ edit:true,add:false,del:false,search:false,cloneToTop:true,refresh:false},
{

},{
//add options

},{

//msg: "do you really want delete this keyword? This delete affect on Eqms filter"

});


jQuery("#task-grid").jqGrid('filterToolbar', { autosearch: true });
var topPagerDiv = $('#grid_toppager')[0];
jQuery("#grid_toppager_center", topPagerDiv).remove();
</script>

下面的函数将 rowId 值附加到隐藏输入

 $("#addid").click(function(){
var Ids = jQuery("#task-grid").jqGrid('getGridParam','selarrrow');
var empIds = $("input[type=hidden][name=user_id]").val(Ids);
});

隐藏输入

<input type="hidden" name="user_id" value=""/>

现在我需要获取插入的单元格值,为此我正在使用下面的函数

var myGrid = $('#task-grid'),
selRowId = myGrid.jqGrid ('getGridParam', 'selrow'),
celValue = myGrid.jqGrid ('getCell', selRowId, 'HOURS');

控制台日志确实向我显示了所选的rowId,但不显示其相应的单元格值。此外,我还可以传递在隐藏输入中检查的多个 rowIds,但无法对单元格值执行此操作。

谢谢。

最佳答案

首先jQuery("#task-grid").jqGrid('getGridParam','selarrrow');返回项目的数组。您不能将数组指定为某些 <input> 的值。您可以使用逗号分隔的项目列表:.val(Ids.join(","))或者您可以使用JSON.stringify或者。 .val(JSON.stringify(Ids)) .

要放置某些列中的值而不是 id,您可以首先定义一个空数组,然后使用 push 用所需的值填充它。方法。最后你可以使用 .join(",")JSON.stringify将项目数组转换为可以分配给 <input> 的字符串

var $grid = $("#task-grid"), selIds = $grid.jqGrid("getGridParam", "selarrrow"), i, n,
cellValues = [];
for (i = 0, n = selIds.length; i < n; i++) {
cellValues.push($grid.jqGrid("getCell", selIds[i], "HOURS"));
}
alert(cellValues.join(","));

我建议您另外使用gridview: true网格中的选项可提高性能并修复 name:'ALLOC. TYPE' 。如果您需要阅读一些特殊格式的输入元素,您应该使用 jsonmap ,但要持有name属性,使其没有空格、点和其他meta-characters 。我建议您使用全部 indexname 相同。在这种情况下,您可以删除 index属性全部来自 colModel 。如果您主要使用align:'center', search:false那么我建议您更改 colModel 的默认值按用途分类的项目 cmTemplate: {align: 'center', search: false} 。它允许您从 colModel 中删除许多属性并使其更具可读性和更好的维护性。

关于jquery - jqGrid获取多个选中行单元格值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26883937/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com