我想要帮助突出显示jqgrid行的数据部分以及它们何时匹配.
我的jqGrid标记:
<div title="Environment variables">
<div class="jqUIDiv">
<table id="tblEnvvars" width="100%"></table>
<div id="EnvvarsGridpager"></div>
</div>
</div>'
Run Code Online (Sandbox Code Playgroud)
和我的jqGrid代码:
var envVars=[]; //xml is a xml response sent from server
$(xml).children('product').each(function(){
$(this).children('envvars').each(function(){
$(this).children('variable').each(function(){
var row={};
isPresent=true;
row.name=$(this).attr('name');
row.value=$(this).attr('value');
envVars.push(row);
});
});
});
jQuery("#tblEnvvars").jqGrid({
datatype: "local",
data: envVars,
colNames:['Name','Value'],
colModel:[
{name:'name',index:'name', align:"left"},
{name:'value',index:'value', align:"left"}
],
pager : '#EnvvarsGridpager',
rowNum:10,
rowList:[10,50,100],
scrollOffset:0,
height: 'auto',
autowidth:true,
viewrecords: true,
gridview: true
});
jQuery("#tblEnvvars").setGridParam({rowNum:10}).trigger("reloadGrid");
jQuery("#tblEnvvars").jqGrid('filterToolbar',{stringResult: true, searchOnEnter: false, defaultSearch: 'cn'});
Run Code Online (Sandbox Code Playgroud)
例如:
如果行项目包含搜索区域中的LD_LIBRARY_PATH用户类型LIB,则LIBLD_LIBRARY_PATH应突出显示.
更新:15/12/2011
我发现这个Highlight插件要突出显示,但在应用它时需要帮助.
我用它来创建下面的截图

这是我使用的代码
jQuery("#list1").jqGrid('filterToolbar',{stringResult: true, searchOnEnter: false, defaultSearch: 'cn', afterSearch:highlightIt()});
function highlightIt()
{
$('#list1 > tbody > tr > td').highlight('HOST');
}
Run Code Online (Sandbox Code Playgroud)
从答案看看演示.如果您愿意(请参阅Justin Ethier评论中的建议),您可以轻松修改要使用的演示.beforeSearchfilterToolbar
更新:再次仔细阅读您的问题后,我再次强调您的想法,以突出搜索模式非常有趣.所以我创建了演示,演示了如何实现您的需求.我用过这些选项
loadonce: true,
ignoreCase: true
Run Code Online (Sandbox Code Playgroud)
对数据进行不区分大小写的本地过滤.如果您已经使用本地数据类型(数据类型的任何excepring 'xml'和'json')的数据将已经在本地举行,你不需要添加额外的loadonce: true选项.
键入网格搜索模式上方的搜索过滤器,数据不仅会被模式过滤,而且列中非常单元格的模式部分将被突出显示,从而提高可见性.所以你可以看到如下图所示的结果:

现在关于实施.首先,我使用你找到的Highlight插件,但我更改了这一行
spannode.className = 'highlight';
Run Code Online (Sandbox Code Playgroud)
至
spannode.className = 'ui-state-highlight';
Run Code Online (Sandbox Code Playgroud)
与jQuery UI CSS更兼容.
我没有使用filterToolbar的任何回调函数,因为在填充新的网格体之前将调用所有回调函数.该filterToolbar填写filters的部分postData,在设定search的jqGrid的参数true和触发reloadGrid.因此,应该突出显示loadComplete(或gridComplete)回调内部的数据,因为此时应该突出显示的所有数据都在网格中.所以我以简单的形式使用了filterToolbar
$("#list1").jqGrid('filterToolbar',
{stringResult: true, searchOnEnter: false, defaultSearch: 'cn'});
Run Code Online (Sandbox Code Playgroud)
loadComplete您的实施如下:
loadComplete: function () {
var filters, i, l, rules, rule, iCol, $this = $(this);
if (this.p.search === true) {
filters = $.parseJSON(this.p.postData.filters);
if (filters !== null && typeof filters.rules !== 'undefined' &&
filters.rules.length > 0) {
rules = filters.rules;
l = rules.length;
for (i = 0; i < l; i++) {
rule = rules[i];
iCol = getColumnIndexByName($this, rule.field);
if (iCol >=0) {
$('>tbody>tr.jqgrow>td:nth-child(' + (iCol + 1) +
')', this).highlight(rule.data);
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6180 次 |
| 最近记录: |