【问题标题】:Match DataID's with row ID's将 DataID 与行 ID 匹配
【发布时间】:2014-11-13 13:28:17
【问题描述】:

jqGrid 代码:

<script>
jQuery("#task-grid").jqGrid({
    url:call_url,
        datatype: "json",
    height: 'auto',
    rowNum: 20,
    rowList: [20,30],
    colNames:['ID','RESOURCE','ROLE','SITE', 'ALLOC. TYPE', 'UNIT (%)'],
    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:false,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>

jqGrid结构:

<table id="task-grid" class="ui-jqgrid-btable" cellspacing="0" cellpadding="0" border="0" tabindex="0" role="grid" aria-multiselectable="true">
<tr style="height:auto" role="row" class="jqgfirstrow"></tr>
<tr class="ui-widget-content jqgrow ui-row-ltr" tabindex="-1" id="13551" role="row">
<td aria-describedby="task-grid_cb" style="text-align:center;width: 25px;" role="gridcell"><input type="checkbox" name="jqg_task-grid_13551" class="cbox" id="jqg_task-grid_13551" role="checkbox"></td>
</tr>
<tr class="ui-widget-content jqgrow ui-row-ltr" tabindex="-1" id="12860" role="row">
<td aria-describedby="task-grid_cb" style="text-align:center;width: 25px;" role="gridcell"><input type="checkbox" name="jqg_task-grid_13551" class="cbox" id="jqg_task-grid_13551" role="checkbox"></td>
</tr>
<tr class="ui-widget-content jqgrow ui-row-ltr" tabindex="-1" id="12855" role="row">
<td aria-describedby="task-grid_cb" style="text-align:center;width: 25px;" role="gridcell"><input type="checkbox" name="jqg_task-grid_13551" class="cbox" id="jqg_task-grid_13551" role="checkbox"></td>
</tr>
</table>

获取 ID 的代码

var ids = jQuery("#task-grid").jqGrid('getDataIDs');
                for (var i = 0; i < ids.length; i++) 
                {
                    var rowId = ids[i];
                    console.log(rowId);
                }

控制台日志为我提供 ID 的 13551, 12860 and 12855,它们是 &lt;tr&gt; 的 ID。

如何将rowId's 与&lt;tr&gt; id 匹配并保持选中复选框?

【问题讨论】:

  • 抱歉,您的问题绝对不清楚。如果您想“将 DataID 与行 ID 匹配”,那么您应该提供一个数据示例(带有 DataID)并包含您使用的 jqGrid 代码。看来您使用 multiselect: true 选项。您在“保持选中复选框”下的意思是什么?您是否希望在加载网格后选择某些行?或者您希望将页面更改为下一个然后返回上一个保留选择?或者您想在同一页面的不同访问之间保留选择的行?我可以继续...你只需要解释一下你需要什么。

标签: jquery jqgrid jqgrid-php


【解决方案1】:

我遍历了rowArray 数组并为rowArray 中的每个rowid 调用setSelection 方法:

var i, count, $grid = $("#myTable");
for (i = 0, count = rowArray.length; i < count; i += 1) {
    $grid.jqGrid('setSelection', rowArray[i], false);
}

此代码有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多