powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как заполнить drop downs для filters в jqgrid из существующих значений в колонке?
2 сообщений из 2, страница 1 из 1
Как заполнить drop downs для filters в jqgrid из существующих значений в колонке?
    #37666283
мадама
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть jqgrid и filterToolbar. Я хочу, что бы вверху combo boxes заполнялись из значении существующих в колонке на клаенте. Привожу код в сильно упрощённом варианте.
Только combo boxes не заполняются. Когда я вызываю setSearchSelect внутри, не заполняются, в итоге появляются combo boxes с одним итемом All. Когда я вызываю на loadComplete, дата правильно образуется (i can see in debug), но combo boxes не появляутся и не заполняются.
Что можете посоветовать? Спасибо. (извиняюсь за ошибки, это всё транслит)

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
  function Ready() {
 
        var grid = $("#jqgList");


        var 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;
        }
  
        
        var buildSearchSelect = function (uniqueNames) {
            var values = ":All";
            $.each(uniqueNames, function () {
                values += ";" + this + ":" + this;
            });
            return values;
        }

       
        var setSearchSelect = function (columnName) {
            grid.jqGrid('setColProp', columnName,
                        {
                            stype: 'select',
                            searchoptions: {
                                value: buildSearchSelect(getUniqueNames(columnName)),
                                sopt: ['eq']
                            }
                        }
            )
        }
        

        grid.jqGrid({
            url: handlerURLandActions(url, action.PendingTransactionsListForClient, undefined, undefined, contid),
            datatype: 'xml',
            mtype: 'post',
            gridview: true,

            colNames: ['ContactID', 'Currency'],

            colModel: [{ name: 'ContactID', index: 'ContactID', width: 50 },
                       { name: 'CurrencyCode', index: 'CurrencyCode', width: 70 },
                       ],
            height: 650,
            width: 1470,
            shrinkToFit: false,
            pager: '#jqnavList',
            recordtext: 'View {0} - {1}',
            loadonce: true,
            sortable: true,
            sortname: 'ContactID',
            sortorder: 'asc',
            viewrecords: true,
            reloadAfterEdit: true,
            caption: '',
            rowNum: 1000,
            loadui: 'disable',
            editurl: handlerURLandActions(url, undefined, undefined),
            }
            
            //loadComplete: function (data) {
            //    setSearchSelect('CurrencyCode');
            //    setSearchSelect('AssigneeName');
            //},

       }).navGrid('#jqnavList', { edit: false, add: false, del: false }, {}, {}, {}, { closeAfterSearch: true, closeAfterReset: true });

        setSearchSelect('CurrencyCode');

         grid.filterToolbar({ searchOnEnter: true, stringResult: true, defaultSearch: "cn" });
            
    }




Пыталась использовать этот пример:
http://stackoverflow.com/questions/5328072/can-jqgrid-support-dropdowns-in-the-toolbar-filter-fields/5329014#5329014
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как заполнить drop downs для filters в jqgrid из существующих значений в колонке?
    #38695103
Дмитрий Орлов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grid.filterToolbar({ searchOnEnter: true, stringResult: true, defaultSearch: "cn" }); нужно вызывать в loadComplete: function ()
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как заполнить drop downs для filters в jqgrid из существующих значений в колонке?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]