Jqgrid 隐藏寻呼机中的按钮分隔符
Jqgrid hide button separator in pager
在我的网格中,我在寻呼机中有 3 个按钮:"刷新"、"构建"和"开发"。它们由两个导航分隔符(竖线(分隔。加载网格时,我隐藏了"已开发"按钮,仅在用户单击一行时才显示它,并在取消选择它时隐藏它。我想在隐藏"开发"按钮时隐藏分隔符。只有一个分隔符(构造按钮和"开发"按钮之间的分隔符(应该隐藏,而不是所有分隔符。我该怎么做?
在这里看到我的jsfiddle。
请参阅下面的我的JavaScript代码:
var hideButton = function (buttonTitle) {
var $td = $(grid[0].p.pager + '_left ' + 'td[title="' + buttonTitle + '"]');
$td.hide();
};
var showButton = function (buttonTitle) {
var $td = $(grid[0].p.pager + '_left ' + 'td[title="' + buttonTitle + '"]');
$td.show();
};
var controlButtonView = function (selRowIds, buttonTitle) {
var i, rowData, show = false;
for (i = 0; i < selRowIds.length; i++) {
rowData = grid.jqGrid("getRowData", selRowIds[i]);
if (rowData.Developed) {
show = true;
} else {
show = false;
hideButton(buttonTitle);
break;
}
}
if (show) {
showButton(buttonTitle);
}
};
var hideShowButton = function (status) {
var selRowIds = grid.jqGrid('getGridParam', 'selarrrow');
if (status) {
controlButtonView(selRowIds, "Set Developed");
} else {
if (selRowIds.length > 0) {
controlButtonView(selRowIds, "Set Developed");
} else {
hideButton("Set Developed");
}
}
};
var mydata = [{
Country: "Germany",
Capital: "Berlin",
Date: "05-09-2014",
Code: 49
}, {
Country: "France",
Capital: "Paris",
Date: "05-09-2014",
Code: 33
}, {
Country: "Cameroon",
Capital: "Yaounde",
Date: "06-09-2014",
Code: 237
}, {
Sel: false,
Country: "Gabon",
Capital: "Libreville",
Date: "06-09-2014",
Code: 241
}, {
Country: "Holland",
Capital: "Amsterdam",
Date: "07-09-2014",
Code: 31
}, {
Country: "Japan",
Capital: "Tokyo",
Date: "08-09-2014",
Code: 81
}, {
Country: "Italy",
Capital: "Rome",
Date: "09-09-2014",
Code: 39
}, {
Country: "Spain",
Capital: "Madrid",
Date: "09-09-2014",
Code: 34
}, {
Country: "England",
Capital: "London",
Date: "10-09-2014",
Code: 44
}, {
Country: "US",
Capital: "Washington D.C.",
Date: "12-09-2014",
Code: 1
}],
grid = jQuery("#pays_grid"),
initDateWithButton = function (elem) {
if (/^'d+%$/.test(elem.style.width)) {
$(elem).css({
width: "230px"
});
}
setTimeout(function () {
$(elem).datepicker({
dateFormat: 'dd-mm-yy',
showOn: 'button',
changeYear: true,
changeMonth: true,
buttonImageOnly: true,
buttonImage: "http://jqueryui.com/resources/demos/datepicker/images/calendar.gif",
buttonText: "Select date",
onSelect: function (dateText, inst) {
if (inst.id.substr(0, 3) === "gs_") {
grid[0].triggerToolbar();
} else {
// to refresh the filter
$(inst).trigger("change");
}
}
});
}, 100);
};
grid.jqGrid({ //set your grid id
data: mydata, //insert data from the data object we created above
datatype: 'local',
height: '250',
gridview: true,
width: 700,
autoheight: true,
auwidth: true,
multiselect: true,
rowNum: 10,
rowList: [1, 5, 10],
colNames: ['Country', 'Country Code', 'Developed', 'Capital', 'Date'],
colModel: [{
name: 'Country',
key: true,
align: 'center'
}, {
name: 'Code',
align: 'center'
}, {
name: 'Developed',
align: 'center',
formatter: function () {
return "<img src='http://www.iconsdb.com/icons/preview/red/circle-xxl.png' alt='red light' style='width:15px;height:15px'/>";
}
}, {
name: 'Capital',
align: 'center'
}, {
name: 'Date',
align: 'center',
sorttype: 'date',
editable: true,
editoptions: {
dataInit: initDateWithButton,
size: 11
},
searchoptions: {
sopt: ['eq', 'ne', 'lt', 'le', 'gt', 'ge'],
dataInit: initDateWithButton
}
}], //define column models
pager: '#pays_grid_pager', //set your pager div id
viewrecords: true,
sortorder: "asc",
sortname: 'Country',
shrinkToFit: true,
forceFit: true,
caption: "Country Overview",
onSelectRow: function (id, status) {
hideShowButton(status);
return true;
},
onSelectAll: function (rowIds, status) {
hideShowButton(status);
return true;
}
}).navGrid('#pays_grid_pager', {
edit: false,
add: false,
del: false,
search: false,
refresh: true
}).navSeparatorAdd('#pays_grid_pager', {
sepclass: 'ui-separator',
sepcontent: '',
position: 'last'
}).navButtonAdd('#pays_grid_pager', {
caption: "Constitution",
buttonicon: "ui-icon-document",
id: "Constitution",
title: "Get Constitution"
}).navSeparatorAdd('#pays_grid_pager', {
sepclass: 'ui-separator',
sepcontent: '',
position: 'last'
}).navButtonAdd('#pays_grid_pager', {
caption: "Developed",
buttonicon: "ui-icon-circle-check",
position: "last",
title: "Set Developed",
onClickButton: function () {
var selRowIds = grid.jqGrid('getGridParam', 'selarrrow');
var data;
var image;
for (var i = 0; i < selRowIds.length; i++) {
data = grid.getRowData(selRowIds[i]);
image = "<img src='http://www.clker.com/cliparts/q/j/I/0/8/d/green-circle-icon-md.png' alt='green light' style='width:15px;height:15px'/>";
data.Developed = image;
$('#' + data.Country + ' [aria-describedby="pays_grid_Developed"]').html(image);
grid.jqGrid("resetSelection");
grid.jqGrid('setRowData', i, data[i]);
grid.jqGrid('saveRow', i, false);
}
}
}).jqGrid('filterToolbar', {
autoSearch: true,
beforeSearch: function () {
var postData = grid.jqGrid('getGridParam', 'postData');
if (!postDataHasParams(postData)) {
return false;
} else if (postData.Code !== null) {
var numToSearch = Number(postData.Code);
if (isNaN(numToSearch)) {
alert('Country Code can only contain numeric values');
return true;
} else {
return false;
}
}
return false;
}
});
hideButton("Set Developed");
看到分隔符被固定在一个td
内,该是持有您隐藏和显示的按钮的td
的直接前身,为什么不对它做同样的事情呢?
喜欢这个:
var hideButton = function (buttonTitle) {
var $td = ...
var $sep = $td.prev();
$td.hide();
$sep.hide();
};
var showButton = function (buttonTitle) {
var $td = ...
var $sep = $td.prev();
$sep.show();
$td.show();
};
...
更新的小提琴在这里。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 多个单选按钮组相互干扰
- JavaScript下拉菜单-点击按钮并根据所选值重定向到url
- Javascript按钮下拉列表
- jquery试图按名称获取按钮位置
- 漂亮照片图片库中的Facebook赞按钮
- 扩展移相器按钮类不工作
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- 单击按钮以等待单击按钮
- 剑道UI内联编辑:如何在点击其他按钮时隐藏按钮
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 如何从querySelectorAll中获取按钮类型
- 如何在输入字段中的按钮的帮助下打开日历,该字段的类型为“=”;日期”;
- 按下按钮时保存cookie
- 是否可以禁用jquery中的单个单选按钮
- ASP.NET通过单击JavaScript按钮触发c#事件
- Jqgrid 隐藏寻呼机中的按钮分隔符
- 如何更改单选按钮的位置&添加行分隔符
- Ember.js隐藏带有按钮的分隔符,但保留didInsertElement功能