加载Jgrid后是否可以打开和关闭某些列的搜索功能?
底层代码允许您隐藏搜索部分,但不影响搜索功能
隐藏起来很好但我没有找到我需要做的事情来展示它
此代码不会影响搜索功能
我必须影响搜索
$("#gs_name").closest(".ui-search-table").hide();
更新
“客户名称”列中的所需组合
search = hidden - > search = false
search = show - > search = true
$("#columnhide").click(function(){
$("#gs_name").val("")
$("#gs_name").closest(".ui-search-table").toggle();
});
答案 0 :(得分:1)
如果我正确理解您需要实施的内容,那么http://jsfiddle.net/OlegKi/ejnrtocw/270/会演示您可以执行的操作。代码使用
$("#columnhide").click(function(){
var $searchField = $("#gs_name");
$searchField.val(""); // clear the filter
$searchField.closest(".ui-search-table").toggle(); // hide or show the control
$(this).html("<b>" + ($searchField.is(":hidden") ? "Show" : "Hide") +
"</b> Client Name Search");
$("#grid")[0].triggerToolbar(); // force filtering without a filter in "name" field
});
并另外修改``回调到以下
的代码ondblClickRow: function(rowid, iRow, iCol, e) {
var $grid = $(this),
cm = $grid.jqGrid("getGridParam", "colModel"),
cellvalue = $grid.jqGrid("getCell", rowid, iCol),
$searchField = $("#gs_" + cm[iCol].name);
if (!$searchField.is(":hidden")) {
$searchField.val(cellvalue);
this.triggerToolbar();
}
}
答案 1 :(得分:0)
This code searches its data if the column is clicked
ondblClickRow: function(rowid, iRow, iCol, e) {
var $grid = $(this),
cm = $grid.jqGrid("getGridParam", "colModel"),
cellvalue = $grid.jqGrid("getCell", rowid, iCol),
$searchField = $("#gs_" + cm[iCol].name);
if (!$searchField.is(":hidden")) {
$searchField.val(cellvalue);
this.triggerToolbar();
}
},
检索所有列
ondblClickRow: function(rowid, iRow, iCol, e) {
var grid=$('#grid');
var cm = $(this).jqGrid("getGridParam", "colModel");
var cmvalues = $(this).jqGrid("getRowData", rowid);
$.each(cm, function(i,n){
if(!n.hidden) {
$('#gs_'+n.name).val( cmvalues[n.name])
}
});
this.triggerToolbar();
},
我无法根据第二个代码设置第一个代码!
我希望通过双击
来搜索所有列数据这对于实用过滤器很重要
我想通过双击在所有区域进行搜索,但我绝不会搜索隐藏的列!
答案 2 :(得分:0)
双击中的隐藏属性是colModel的属性。在您的情况下,您应该使用jquery selector :hidden来完成这项工作。
代码可以像这样更改:
ondblClickRow: function(rowid, iRow, iCol, e) {
var cm = $(this).jqGrid("getGridParam", "colModel");
var cmvalues = $(this).jqGrid("getRowData", rowid);
$.each(cm, function(i,n){
if(!n.hidden) {
var elem = $('#gs_'+n.name);
if( elem.is(":hidden") {
// set it to empty to overcome search when trigger
elem.val("");
} else {
elem.val( cmvalues[n.name]);
}
}
});
this.triggerToolbar();
},