1

こんにちは、みんな!!!jqgrid の列に一意のドロップダウン リストを取得するためのコードを追加しました。ドロップダウンリストが来ていますが、jqgrid の最初のページに来ています。これは、ドロップダウンリストが 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
                                });
                            }
                        }
                    });

これら 2 つのコード スニペットの間に、Ajax 呼び出しを使用してローカルで jqgrid にデータをロードしています。どんな助けでも心から感謝します..事前に感謝..

4

1 に答える 1

0

getCol は、jqgrid から現在読み込まれているデータのみを返すと思います (定義された列の場合)。最初は最初のページだけをロードするため、オートコンプリートはそれ以上の列の一意の値を知る方法がありません!

すべてのページを一度に読み込むか (小さなデータセット)、データベースからオートコンプリートを入力する必要があります。

于 2013-04-03T05:02:32.267 に答える