我正在努力选择和操纵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").jqGrid('filterToolbar', { stringResult:true, searchOnEnter:false });
我只需要能够设置下拉控件的默认选定值,我无法实现:(
感谢任何帮助!
答案 0 :(得分:3)
您可以使用其他搜索选项
searchoptions:{
dataInit:function(el){
$("option:contains("+defaultCategory+")",el).attr("selected", "selected");
setTimeout(function(){
$(el).trigger('change');
},500);
}
}
其中defaultCategory
是您想要的默认选项。请参阅小型演示here。
答案 1 :(得分:0)
我相信我找到了方法:
var stateIdDropDown = $('#gs_StateId');
在这种情况下, gs_StateId 是元素的DOM Id(在Firebug的帮助下找到)。
但是,请回复如果有人知道如何以下列方式选择元素的方法:
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级别设置默认搜索条件。