Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search jqGrid选择下拉元素_Search_Jqgrid - Fatal编程技术网

Search 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()

我正在努力选择和操纵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 });
我只需要能够设置下拉控件的默认选定值,但我无法实现:


感谢您的帮助

您可以使用附加的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如何用于搜索,以及如何成为布拉格的最佳愿望!我对这个城市有着最美好的回忆。很多年前我还是个学生的时候就去了。