Duas perguntas relacionadas sobre filtros de header de coluna do jqGrid e a checkbox de diálogo de filtragem avançada

Ao desenvolver meu primeiro aplicativo ASP.NET MVC 3 usando o jqGrid para exibir alguns dados, estou usando os filtros de header da coluna e também permitindo que a filtragem avançada da barra de ferramentas do filtro seja feita. Independentemente, essas coisas funcionam muito bem.

Primeira pergunta – Alguém tem uma solução para comunicar as configurações atuais do filtro de header da coluna aos filtros avançados?

Por exemplo, um usuário pode filtrar na coluna “Ice Cream Name”, digitar um nome parcial, por exemplo, “Chocolate”, e filtrar até “Chocolate Explosion”, “Dark Chocolate”, etc. – ótimo. O que seria bom seria abrir o filtro avançado e fazer com que o filtro de coluna “contém ‘Chocolate'” seja preenchido automaticamente no filtro avançado. Eu reconheço que a outra direção (onde alguém poderia AND ou OR dois valores para a mesma coluna, por exemplo, ‘Chocolate’ OU ‘Caramel’) torna-se problemática, mas na outra direção, parece que pode ser possível. Talvez esta seja apenas uma configuração da grade que estou perdendo. Alguém resolveu isso?

Segunda pergunta – Eu atualmente posso fazer alguma filtragem com os filtros de header da coluna, mostrar um conjunto de resultados na grade e, em seguida, ir para a checkbox de diálogo de filtro avançada e configurar um filtro diferente. Isso exibirá os resultados corretos, mas os filtros do header da coluna não serão apagados, dando a impressão de que a filtragem não está funcionando. Como posso redefinir os filtros de header da coluna após o uso clica no botão “Localizar” na checkbox de diálogo?

   

Eu sei que é um post antigo – mas se você tiver várias grades na mesma página, o código acima pode adicionar o texto do filtro à grade errada.

Alterando isso no primeiro loop no refreshSearchingToolbar, de

 control = $("#gs_" + $.jgrid.jqID(cm[i].name)); 

para

 control = $("#gview_"+$grid.attr('id')+" #gs_" + $.jgrid.jqID(cm[i].name)); 

e isso no segundo loop de

 control = $("#gs_" + $.jgrid.jqID(cmi.name)); 

para

 control = $("#gview_"+$grid.attr('id')+" #gs_" + $.jgrid.jqID(cmi.name)); 

deve fazer o truque.

Kudos a Oleg