【问题标题】:Interesting: implementing jquery autoComplete with jqgrid without overriding the exciting searchOptions有趣:使用 jqgrid 实现 jquery autoComplete 而不覆盖令人兴奋的 searchOptions
【发布时间】:2012-01-11 08:07:53
【问题描述】:

奥列格 - 你在吗???

我正在使用 jqGrid,我是否根据类型在 colModel 中设置了我的搜索选项

像这样:

var columnModel = [{ name: 'ID', index: 'ID', sortable: true,searchoptions: { sopt: ['gt']}},
{ name: 'FirstName', index: 'FirstName', sortable: true, searchoptions: { sopt: ['cn']} },
{ name: 'LastName', index: 'LastName', sortable: true ,searchoptions: { sopt: ['ge']}}
];

现在,在我加载网格后,我想使用下面的代码来将 auticomplete 添加到网格的搜索框中:

for (var i = 0; i < columnModel.length; i++) {
    var nameCol = columnModel[i].name;
    myGrid.jqGrid('setColProp', nameCol,
            {
                searchoptions: {
                    dataInit: function (elem) {
                        $(elem).autocomplete({
                            source: function (request, response) {
                                autoFillSearch(request, response, $(elem).attr('name'));
                            },
                            minLength: 1
                        });
                    }
                }
            });
}
myGrid.jqGrid('filterToolbar', { stringResult: true, searchOnEnter: true });

autoFillSearch 函数是这样的:

function autoFillSearch(request, response, columnToSearchName) {
    var paramters = {
        colName: columnToSearchName,
        prefixText: request.term
    };
    $.ajax({
        url: './ViewNQueryData.asmx/AutoCompleteSearch',
        type: 'POST',
        dataType: 'json',
        contentType: 'application/json; charset=utf-8',
        data: JSON.stringify(paramters),
        success: function (data) {
            response($.each(data.d, function (index, value) {
                return {
                    label: value,
                    value: index
                }
            }));
        }
    });
}

问题是新的 colModels 具有第二次创建的搜索选项,并且没有我希望他们拥有的特定“sopt”....

我有什么方法可以更改第二个搜索选项,以便它从原始 colMadel 中获得“sopt”选项?

提前谢谢你。

【问题讨论】:

    标签: jquery-ui search jqgrid jquery-autocomplete


    【解决方案1】:

    答案是:

    for (var i = 0; i < columnModel.length; i++) {
        var nameCol = columnModel[i].name;
        var soptOption = columnModel[i].searchoptions.sopt;
        myGrid.jqGrid('setColProp', nameCol,
                    {
                        searchoptions: {
                            sopt: soptOption,
                            dataInit: function (elem) {
                                $(elem).autocomplete({
                                    source: function (request, response) {
                                        autoFillSearch(request, response, $(elem).attr('name'));
                                    },
                                    minLength: 1
                                });
                            }
                        }
                    });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-03
      • 2017-04-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多