Jqgrid中的第一页值将显示唯一下拉列表

时间:2013-04-03 04:52:14

标签: asp.net jqgrid

大家好!                       我添加了在jqgrid列中获取唯一下拉列表的代码。 Dropdownlist即将推出但jqgrid的第一页即将发布,表示dropdownlist具有jqgrid第一页的唯一值,而我需要整个Jqgrid的所有唯一值..

下面我发布了我的代码......

grid = $("#gridId");

        getUniqueNames = function (columnName) {
            var texts = grid.jqGrid('getCol', columnName), uniqueTexts = [],
            textsLength = texts.length, text, textsMap = {}, i;
            for (i = 0; i < textsLength; i++) {
                text = texts[i];
                if (text !== undefined && textsMap[text] === undefined) {
                    // to test whether the texts is unique we place it in the map.
                    textsMap[text] = true;
                    uniqueTexts.push(text);
                }
            }
            return uniqueTexts;
        },
        buildSearchSelect = function (uniqueNames) {
            var values = ":All";
            $.each(uniqueNames, function () {
                values += ";" + this + ":" + this;
            });
            return values;
        },
        setSearchSelect = function (columnName) {
            grid.jqGrid('setColProp', columnName,
            {
                stype: 'select',
                searchoptions: {
                    value: buildSearchSelect(getUniqueNames(columnName)),
                    sopt: ['eq']
                }
            }
        );
        };

我这样称呼这个函数......

setSearchSelect('extension');
                grid.jqGrid('setColProp', 'Name',
                    {
                        searchoptions: {
                            sopt: ['cn'],
                            dataInit: function (elem) {
                                $(elem).autocomplete({
                                    source: getUniqueNames('Name'),
                                    delay: 0,
                                    minLength: 0
                                });
                            }
                        }
                    });


                setSearchSelect('username');
                grid.jqGrid('setColProp', 'Name',
                    {
                        searchoptions: {
                            sopt: ['cn'],
                            dataInit: function (elem) {
                                $(elem).autocomplete({
                                    source: getUniqueNames('Name'),
                                    delay: 0,
                                    minLength: 0
                                });
                            }
                        }
                    });

在这两个代码片段之间,我使用Ajax调用将数据加载到本地jqgrid中。 任何帮助将非常感激.. Thanx提前..

1 个答案:

答案 0 :(得分:0)

我相信getCol将仅返回来自jqgrid的当前加载数据(对于已定义的列)。 因为首先你只加载第一页,自动完成无法知道列的唯一值超过它!

您必须一次加载所有页面(小数据集)或 从数据库填写自动填充。