jqGrid选择下拉元素

时间:2010-11-09 15:52:35

标签: 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").jqGrid('filterToolbar', { stringResult:true, searchOnEnter:false });

我只需要能够设置下拉控件的默认选定值,我无法实现:(

感谢任何帮助!

2 个答案:

答案 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级别设置默认搜索条件。