Search jqGrid filtertoolbar在调整网格大小后未触发

Search jqGrid filtertoolbar在调整网格大小后未触发,search,jqgrid,filter,height,Search,Jqgrid,Filter,Height,我将子网格的行号固定为10,但如果reccount小于10,我希望将高度子网格调整为“自动”或“100%” 下面是我对这个子网格的代码: //子网格第四级 var subgrid_table_id=subgrid_id+“_d”, pager_id=“p_”+子网格\u表\u id; $(“#”+子网格id); $(“#”+子网格_表_id).jqGrid({ url:“sg31b.php?id=“+row_id+”&clt=“+clt, 数据类型:“json”, idPrefix:“新加坡元”

我将子网格的行号固定为10,但如果reccount小于10,我希望将高度子网格调整为“自动”或“100%”

下面是我对这个子网格的代码:

//子网格第四级
var subgrid_table_id=subgrid_id+“_d”,
pager_id=“p_”+子网格\u表\u id;
$(“#”+子网格id);
$(“#”+子网格_表_id).jqGrid({
url:“sg31b.php?id=“+row_id+”&clt=“+clt,
数据类型:“json”,
idPrefix:“新加坡元”,
colNames:['Id','Article','Désignation','Marque','equality',],
colModel:[
{name:'e.id',index:'e.id',hidden:true},
{名称:'a.code',索引:'a.code',宽度:100},
{名称:'a.descr',索引:'a.descr',宽度:450},
{名称:'k.code',索引:'k.code',宽度:80},
{名称:'e.equiv',索引:'e.equiv',宽度:100}
], 
寻呼机:寻呼机id,
sortname:“a.code”,
希登格:没错,
卷轴:没错,
身高:230,
rowNum:10,
自动宽度:正确,
标题:'4-等效条款',
gridComplete:函数(){
sortDataCol(这个);
if($(“#”+子网格_id+“_d”).jqGrid('getGridParam','records')<$(“#”+子网格_id+“_d”).jqGrid('getGridParam','rowNum')){
$(“#”+子网格_id+“_d”).jqGrid('setGridHeight','100%”);
}否则{
$(“#”+子网格_id+“_d”).jqGrid('setGridParam',[{npage:1}]).jqGrid('setGridHeight',230);
}
}
}); 
$(“#”+子网格_表_id).jqGrid('navGrid',“#”+pager_id,{search:false,add:false,edit:false,del:false});
$(“#”+子网格_table_id).jqGrid('filterToolbar',{stringResult:true,SearchOnNet:false});
fullInputCss();
以及少于10个筛选行的结果快照:

现在,如果我在搜索字段中按Backspace以获取更多行,似乎搜索不会启动,因为Firebug不会显示任何请求的痕迹:

如果我删除gridcomplete中添加的“setGridHeight”行,所有运行都正常! 我认为我再一次在编码和理解jqGrid如何运行方面犯了错误。 有人能给我一些解决这个问题的方法吗?
非常感谢。祝您有个美好的一天。JiheL

我想问题的根源可能是页面上重复的id。刚才我写了你的另一个问题,在那里我详细地描述了这个问题

jqGrid(版本4.4.5)的当前实现在
filterToolbar
的代码中存在问题,该代码基于以下规则为过滤器工具栏的输入字段构造
id

id=“gs_uu”+cm.name

(见《守则》第1章)。这意味着
a.code
列的输入字段的id将是
gs\u a.code
,用于您使用的每个子网格。所以你可以有重复的身份证

因此,我建议您重新设计代码中的命名概念。例如,您可以使用

name:row_id+“a_代码”,索引:“a.code”

在网格排序过程中,类似于
“a.code”
的值仍将被发送,但不会有重复的id。在某些情况下(在
jsonReader
中使用
repeatitems:false
),您可能需要使用额外的
jsonmap
属性,但在当前代码中不需要它。

尝试删除您使用的
scroll:true
。虚拟滚动通常是一个不错的特性,但是jqGrid中的实现包含许多bug和副作用。我不建议您在名称中使用
,如果
索引
属性的值与
名称
属性的值相同,则建议您删除该属性。您最好在每个回调中使用
$(this)
,而不是
$(“#”+子网格_id+“_d”)
。您可以删除不需要的
class='scroll'
(两次)并在
idPrefix
中包含
row\u id
,因为可以同时为不同的行打开多个子网格。目前您产生了重复的id。我建议您添加“jquery”或“javascript”作为所有jqGrid问题的附加标记,以便在您发布的代码中具有更好的颜色。或者,您可以在代码之前包含
(不要忘记在代码和注释之间包含一行空行)。请参阅以了解详细信息。只是想说明我喜欢屏幕截图中的网格颜色/样式:)感谢您的评论,这是来自jquery ui的PSA主题。