Search jqGrid选择下拉元素
我正在努力选择和操纵jqGrid中的下拉列表Search jqGrid选择下拉元素,search,jqgrid,Search,Jqgrid,我正在努力选择和操纵jqGrid中的下拉列表 jQuery("#grid")... colModel: [... { name: 'StateId', index: 'StateId', width: 350, align: 'center', stype: 'select', edittype: 'select', searchoptions: { sopt: ['eq'] }, editoptions: { value: controllerMethods.GetStates()
jQuery("#grid")...
colModel: [...
{ name: 'StateId', index: 'StateId', width: 350, align: 'center', stype: 'select',
edittype: 'select', searchoptions: { sopt: ['eq'] },
editoptions: { value: controllerMethods.GetStates()} },...
.
.
.
jQuery("#grid").jqGrid('filterToolbar', { stringResult:true, searchOnEnter:false });
我只需要能够设置下拉控件的默认选定值,但我无法实现:
感谢您的帮助 您可以使用附加的searchoptions选项
searchoptions:{
dataInit:function(el){
$("option:contains("+defaultCategory+")",el).attr("selected", "selected");
setTimeout(function(){
$(el).trigger('change');
},500);
}
}
其中defaultCategory是您希望具有默认值的选项。参见小演示。我相信我找到了方法:
var stateIdDropDown = $('#gs_StateId');
在本例中,gs_StateId是通过Firebug找到的元素的DOM Id
但是,如果有人知道如何以以下方式选择元素,请回复:
var stateIdDropDown = $('#myGrid>whatever...StateId');
谢谢大家
附录1:
.
.
.
//Preset default search filter.
SetGridSearchDefaults: function (grid)
{
var gridInfo = new Object();
var postData = grid.jqGrid('getGridParam', 'postData');
if (postData.filters==null)
{
postData.filters = '{"groupOp":"AND","rules":[{"field":"StateId","op":"eq","data":"1"}]}'
grid.jqGrid('setGridParam', { postData: postData });
}
},
//Pre-Select dropdowns.
PreSelectDropDowns: function ()
{
$('select#gs_StateId').val('1');//Status New
},
。
.
在Grid的beforeRequest事件中调用SetGridSearchDefaults
在Grid的gridComplete事件中调用PreSelelectDropDown,请不要调用代码段
jQuery("#grid").jqGrid({
.
.
.
gridComplete: function () {
if (firstLoad == true) {
commonMethods.PreSelectDropDowns(); //Pre-Select filter dropdowns.
firstLoad = false;
}
.
.
.
通过这种方式,我通过强制GUI驱动控制器来保存MVC模式,即在GUI级别设置默认搜索条件。非常感谢Oleg!你的解决方案有效!然而,我也对如何获取el的引用感兴趣,即从dataInit事件外部获取下拉列表。我想到的一件事是在dataInit事件中捕获引用,并将其分配给外部变量以供以后使用。不过,这取决于dataInit事件:当然,在外部变量中保存对值el的引用将起作用。在我看来,您只需使用$gs_StateId就可以做到这一点,因为过滤器工具栏中元素的id将由gs_前缀和相应列的名称构成。请不要在新答案中添加新信息。很难找到它。你为什么不喜欢$'gs_StateId'?您不能使用类似$'myGrid>。。。因为工具栏在myGrid之外。它位于gview_myGrid的内部。关于搜索/过滤的老答案,并展示了postData如何用于搜索,以及如何成为布拉格的最佳愿望!我对这个城市有着最美好的回忆。很多年前我还是个学生的时候就去了。