Javascript JqGrid PHP:通过工具栏过滤时突出显示结果
我想在使用过滤器工具栏时突出显示搜索结果 我尝试使用解决方案并提供, 但它在jqsuiteforphp中不起作用 grid.php代码片段Javascript JqGrid PHP:通过工具栏过滤时突出显示结果,javascript,php,jqgrid,jqgrid-php,Javascript,Php,Jqgrid,Jqgrid Php,我想在使用过滤器工具栏时突出显示搜索结果 我尝试使用解决方案并提供, 但它在jqsuiteforphp中不起作用 grid.php代码片段 $highlighting = <<<HIGHLIGHTING function () { var filters, i, l, rules, rule, iCol, $this = $(this); if (this.p.search === true) { filters = $.parseJSON(t
$highlighting = <<<HIGHLIGHTING
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);
}
}
}
}
}
HIGHLIGHTING;
$grid->setGridEvent('loadComplete',$highlighting);
$highlighting=setGridEvent('loadComplete',$highlighting);
我得到这个错误:
注意:未定义变量:此
你能理解我做错了什么吗?我自己不使用PHP。无论如何,您应该知道您在页面上使用的网格的ID。例如,如果它是
id=“grid”
,那么您可以用函数代码内部的$(“#grid”)[0]
替换该。很抱歉,它仍然不起作用。我将其更改为:$this=$(“#网格”)[0]
@jesstone:您使用的代码包含许多对this
的引用。代码$this=$(this)
可以替换为$this=$(“#网格”)[0])
,或者只替换为$this=$(“#网格”)
,代码$('>tbody>tr.jqgrow>td:nth子项('..,this)
包含this
,代码this.p.search
,this.p.postData过滤器可以替换为”[350].p.search
和$(“#网格”)[0].p.postData.filters
。谢谢你亲爱的@Oleg。不幸的是,我现在得到了:未捕获的引用错误:getColumnIndexByName未定义
@Jesstone:的代码也包含了getColumnIndexByName
的定义。你只需将定义为$highlighting
的函数中的代码包含进去即可cal函数getColumnIndexByName
可以用与任何局部变量相同的方式定义。是的@Oleg你说得对!我缺少该函数。注意:我通过$grid->setJSCode($custom);
添加了函数getColumnIndexByName
,因为通过$grid->setGridEvent]添加该函数不起作用('loadComplete',$highlighting);
。所以我的代码基本上分为两部分:)再次感谢我的导师!