色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

jquery jqgrid多選

錢浩然2年前8瀏覽0評論

JqGrid 是一款非常優秀的 jQuery 插件,可以方便地實現表格數據的展示、分頁、排序、搜索等功能。而其中的多選功能也是我們經常需要用到的,下面我們來介紹一下如何使用 JqGrid 實現多選功能。

1. 首先,我們需要在 JqGrid 的 colModel 中定義一個名為 “cb” 的列,用于顯示多選框。其格式如下:

{ name: 'cb', index: 'cb', width: 30, align: 'center', formatter: function (cellvalue, options, rowObject) { return ''; } }

上面的代碼中,我們通過 formatter 函數返回了一個多選框,并且把當前行的 id 值當作 value 值綁定到了多選框上,這樣在后面選擇多選框時可以方便地獲取到相應的 id。

2. 接著,我們需要在 JqGrid 的 beforeSelectRow 事件中處理多選框的選中狀態,其格式如下:

beforeSelectRow: function (rowid, e) {
var $target = $(e.target);
if ($target.hasClass('select-checkbox')) {
var selectedIds = $('#grid').jqGrid('getGridParam', 'selarrrow');
var rowId = $.jgrid.stripPref($('#grid').attr('id'), rowid);
if ($target.is(':checked')) {
selectedIds.push(rowId);
} else {
selectedIds.splice(selectedIds.indexOf(rowId), 1);
}
$('#grid').jqGrid('setGridParam', { selarrrow: selectedIds });
}
return true;
}

上面的代碼中,我們首先判斷觸發事件的元素,如果是多選框,則處理選中狀態。接著我們通過 selarrrow 方法獲取當前頁面已選中的行,并且通過 stripPref 方法獲取 rowid 中的真實行號。然后根據多選框的狀態,更新 selectedIds 數組并調用 setGridParam 方法,最后返回 true 表示繼續觸發 selectRow 事件。

3. 最后,我們可以添加一個選擇全部的按鈕,方便用戶全選或全不選。其格式如下:

$('#select-all').on('click', function () {
var $checkboxs = $('.select-checkbox');
$checkboxs.prop('checked', !($checkboxs.filter(':checked').length === $checkboxs.length)).trigger('click');
});

上面的代碼中,我們綁定了一個 click 事件,通過選擇器獲取所有的多選框,并且根據已選中的數量與總數的比較判斷當前狀態,最后觸發 click 事件來讓 beforeSelectRow 事件處理選中狀態。