Javascript 如何在jQgrid中仅选择筛选的行?
我有一个网格(由jqGrid 4.15.2制成)。代码如下所示:Javascript 如何在jQgrid中仅选择筛选的行?,javascript,jquery,jqgrid,free-jqgrid,Javascript,Jquery,Jqgrid,Free Jqgrid,我有一个网格(由jqGrid 4.15.2制成)。代码如下所示: $.jgrid = $.jgrid || {}; $.jgrid.no_legacy_api = true; $.jgrid.useJSON = true; $(function () { "use strict"; var $grid = $("#list"), maximizeGrid = function () { var newWidth = $grid.clos
$.jgrid = $.jgrid || {};
$.jgrid.no_legacy_api = true;
$.jgrid.useJSON = true;
$(function () {
"use strict";
var $grid = $("#list"),
maximizeGrid = function () {
var newWidth = $grid.closest(".ui-jqgrid").parent().width();
$grid.jqGrid("setGridWidth", newWidth, true);
};
// Resize grid if window is being resized
$(window).on("resize", maximizeGrid);
$grid.jqGrid({
colNames: ["", "Form #", "Form", "Plan", "Class", "Drug"],
colModel: [
{name: "act", template: "actions"},
{
name: "FormId",
align: 'center',
fixed: true,
frozen: true,
resizable: false,
width: 100,
editable: "hidden"
},
{name: "FormName", search: true, stype: "text"},
{name: "PlanName", search: true, stype: "text"},
{
name: "DrugGroupName",
edittype: "select",
editable: true,
search: true,
editoptions: {
dataUrl: "/ajax/drug_groups/get_all",
buildSelect: function (data) {
var select = "<select>", i;
for (i = 0; i < data.length; i++) {
select += "<option value='" + String(data[i].Id) + "'>" + $.jgrid.htmlEncode(data[i].DrugGroupName) + "</option>"
}
return select + "</select>";
},
selectFilled: function (options) {
setTimeout(function () {
$(options.elem).select2({
width: "100%"
});
}, 0);
}
},
stype: "select", searchoptions: {
sopt: ["eq", "ne"],
generateValue: true,
noFilterText: "Any",
selectFilled: function (options) {
setTimeout(function () {
$(options.elem).select2({
width: "100%"
});
}, 0);
}
}
},
{name: "DrugName", search: true, stype: "text"}
],
cmTemplate: {
width: 300,
autoResizable: true
},
iconSet: "fontAwesome",
rowNum: 25,
guiStyle: "bootstrap",
autoResizing: {
compact: true,
resetWidthOrg: true
},
rowList: [25, 50, 100, "10000:All"],
toolbar: [true, "top"],
viewrecords: true,
autoencode: true,
sortable: true,
pager: true,
toppager: true,
cloneToTop: true,
hoverrows: true,
multiselect: true,
multiPageSelection: true,
rownumbers: true,
sortname: "Id",
sortorder: "desc",
loadonce: true,
autowidth: true,
autoresizeOnLoad: true,
forceClientSorting: true,
prmNames: {id: "Id"},
jsonReader: {id: "Id"},
url: '/ajax/plans_to_forms/get_all',
datatype: "json",
editurl: '/ajax/plans_to_forms/update',
formDeleting: {
url: '/ajax/plans_to_forms/delete/',
delicon: [true, "left", "fa-scissors"],
cancelicon: [true, "left", "fa-times"],
width: 320,
caption: 'Delete Plan to Form Link',
msg: 'Are you sure you want to delete this link?',
beforeShowForm: function ($form) {
var rowids = $form.find("#DelData>td").data("rowids");
$form.closest(".ui-jqdialog").position({
of: window,
my: "center center",
at: "center center"
});
if (rowids.length > 1) {
$form.find("td.delmsg").html('Are you sure you want to delete all the selected form links?');
}
},
afterComplete: function (response, postdata, formid) {
if (response.responseText === "true") {
toastr["success"]("The link was deleted successfully.", "Information");
} else {
toastr["error"]("Something went wrong, the link could not be deleted.", "Error");
}
}
},
ajaxSelectOptions: {
type: "POST",
dataType: "json"
},
navOptions: {
edit: false,
add: false,
search: false
},
inlineEditing: {
keys: true,
focusField: "DrugGroupName",
serializeSaveData: function (postData) {
var changedData = {}, prop, p = $(this).jqGrid("getGridParam"),
idname = p.keyName || p.prmNames.id,
oldValue, cm;
for (prop in postData) {
oldValue = p.savedRow[0][prop];
if (p.iColByName[prop] != null) {
cm = p.colModel[p.iColByName[prop]];
}
if (postData.hasOwnProperty(prop) && (postData[prop] !== oldValue || prop === idname)) {
changedData[prop] = postData[prop];
}
}
return changedData;
},
aftersavefunc: function () {
toastr["success"]("The record was updated successfully.", "Information");
},
errorfunc: function () {
toastr["error"]("Something went wrong, the record could not be updated.", "Error");
}
},
onSelectRow: function (rowid, status, e) {
var $self = $(this),
$td = $(e.target).closest("tr.jqgrow>td"),
p = $self.jqGrid("getGridParam"),
savedRow = p.savedRow;
if (savedRow.length > 0 && savedRow[0].id !== rowid) {
$self.jqGrid("restoreRow", savedRow[0].id);
}
if ($td.length > 0 && $td[0].cellIndex !== p.iColByName.act) {
// don't start editing mode on click on "act" column
$self.jqGrid("editRow", rowid);
}
},
loadComplete: function () {
var $self = $(this), p = $self.jqGrid("getGridParam");
if (p.datatype === "json") {
// recreate the toolbar because we use generateValue: true option in the toolbar
$self.jqGrid("destroyFilterToolbar").jqGrid("filterToolbar");
}
}
}).jqGrid('navGrid').jqGrid("filterToolbar").jqGrid('setFrozenColumns');
// fill top toolbar
$('#t_' + $.jgrid.jqID($grid[0].id)).append($("<div><label for=\"globalSearchText\">Global search in grid for: </label><input id=\"globalSearchText\" type=\"text\"></input> <button id=\"globalSearch\" type=\"button\">Search</button></div>"));
$("#globalSearchText").keypress(function (e) {
var key = e.charCode || e.keyCode || 0;
if (key === $.ui.keyCode.ENTER) { // 13
$("#globalSearch").click();
}
});
$("#globalSearch").button({
icons: {primary: "ui-icon-search"},
text: false
}).click(function () {
var postData = $grid.jqGrid("getGridParam", "postData"),
colModel = $grid.jqGrid("getGridParam", "colModel"),
rules = [],
searchText = $("#globalSearchText").val(),
l = colModel.length,
i,
cm;
for (i = 0; i < l; i++) {
cm = colModel[i];
if (cm.search !== false && (cm.stype === undefined || cm.stype === "text")) {
rules.push({
field: cm.name,
op: "cn",
data: searchText
});
}
}
postData.filters = JSON.stringify({
groupOp: "OR",
rules: rules
});
$grid.jqGrid("setGridParam", {search: true});
$grid.trigger("reloadGrid", [{page: 1, current: true}]);
return false;
});
});
$.jgrid=$.jgrid | |{};
$.jgrid.no_legacy_api=true;
$.jgrid.useJSON=true;
$(函数(){
“严格使用”;
var$grid=$(“#列表”),
maximizeGrid=函数(){
var newWidth=$grid.closest(“.ui jqgrid”).parent().width();
$grid.jqGrid(“setGridWidth”,newWidth,true);
};
//调整网格大小(如果正在调整窗口大小)
$(窗口)。打开(“调整大小”,最大化ID);
$grid.jqGrid({
colNames:[“”、“表单”、“表单”、“计划”、“类”、“药物”],
colModel:[
{name:“act”,模板:“actions”},
{
名称:“FormId”,
对齐:'居中',
修正:对,
冻结:是的,
可调整大小:false,
宽度:100,
可编辑:“隐藏”
},
{name:“FormName”,search:true,stype:“text”},
{name:“PlanName”,search:true,stype:“text”},
{
名称:“DrugGroupName”,
编辑类型:“选择”,
是的,
搜索:对,
编辑选项:{
dataUrl:“/ajax/drug\u groups/get\u all”,
buildSelect:函数(数据){
var select=“”,i;
对于(i=0;itd”).data(“rowids”);
$form.closest(“.ui jqdialog”).位置({
窗户,
我的:“中心”,
在“中心”
});
如果(rowids.length>1){
$form.find(“td.delmsg”).html('是否确实要删除所有选定的表单链接?');
}
},
完成后:功能(响应、postdata、formid){
如果(response.responseText==“true”){
toastr[“成功”](“链接已成功删除。”,“信息”);
}否则{
toastr[“error”](“出错,链接无法删除。”,“error”);
}
}
},
ajaxSelectOptions:{
类型:“POST”,
数据类型:“json”
},
导航选项:{
编辑:false,
加:错,,
搜索:false
},
在线编辑:{
凯斯:没错,
焦点字段:“DrugGroupName”,
serializeSaveData:函数(postData){
var changedData={},prop,p=$(this.jqGrid(“getGridParam”),
idname=p.keyName | | p.prmNames.id,
old值,cm;
用于(postData中的道具){
oldValue=p.savedRow[0][prop];
如果(p.iColByName[prop]!=null){
cm=p.colModel[p.iColByName[prop]];
}
if(postData.hasOwnProperty(prop)&&(postData[prop]!==oldValue | | prop==idname)){
changedData[prop]=postData[prop];
}
}
返回更改数据;
},
aftersavefunc:函数(){
toastr[“成功”](“记录已成功更新。”,“信息”);
},
errorfunc:函数(){
toastr[“error”](“出错,记录无法更新。”,“error”);
}
},
电子的