Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.10.2010, 19:56
Аспирант
Отправить личное сообщение для DenQ Посмотреть профиль Найти все сообщения от DenQ
 
Регистрация: 28.08.2010
Сообщений: 57

PagingToolbar и поиск
Всем доброго времени суток.
Я с очередным вопросом...
У меня есть грид, в нем есть постраничная навигация, и я даже поиск реализовал уже, но вот проблема в том что поиск работает корректно до той поры пока я не нажму кнопку для просмотра следующей страницы... если это сделать, то теряются настройки поиска(необходимые параметры в запросе сторы отсутствуют).... и грид отображает не отфильтрованную информацию... хотя по результатам поиска найдено 4 страницы(с учетом настроек лимитов).
В общем не знаю как объяснил.
Был бы рад вашим примерам, или советам.
Ниже приводится листинг. Если что извиняюсь за большие размеры.

function gUsers(){
    var storeUsers = getStore('users');
//    var str = null;
    function sendForFind(b, e) {
        var str = field.getValue();
        storeUsers.reload(
            {params: {
                    start   : 0,
                    limit   : 5,
                    text    : str,
                    combo   : comboList.getValue(),
                    box     : checkBox
                    }
            }
        );
    }

    var checkBox = false;
    var CheckBox = new Ext.form.Checkbox( {
        id      : '001',
        title   : 'box',
        listeners:{
            check: function() {
                (checkBox == true) ? (checkBox = false) : (checkBox = true);
            },
            specialkey: function (a, e) {
                if(e.getKey() == e.ENTER) {
                    sendForFind();
                }
            }
        }
    })

    var massList = [
            ['name', 'Имя'],
            ['email', 'Почта'],
            ['code', 'Код']
        ];

       var listStore = new Ext.data.ArrayStore( {
            data            : massList,
            autoLoad        : true,
            fields: [
               {
                   name     : 'val',
                   type     : 'string'
               }, {
                   name     : 'txt',
                   type     : 'string'
               }
            ]
        });

    var comboList = new Ext.form.ComboBox( {
        value           : 'name',
        store           : listStore,
//        readOnly        : true,
        displayField    : 'txt',
        valueField      : 'val',
        width           : 100,
        mode            : 'local',
        triggerAction   : 'all',
        listeners: {
            select:function() {
//                    comboList.setValue('txt');
            },
            specialkey: function (a, e) {
                if(e.getKey() == e.ENTER) {
                    sendForFind();
                }
            }
        }
    });

    var field   = new Ext.form.TextField({
        fieldLabel  : 'Short name',
        width       : 250,
        name        : 'fielset',
        listeners: {
            specialkey: function (a, e) {
                if(e.getKey() == e.ENTER) {
                    sendForFind();
                }
            }
        }
    });
    var button  = new Ext.Button( {
        text        : '<b>Найти</b>',
        name        : 'button_search',
        handler     : sendForFind,
        listeners: {
            click: function(){
//                buttonDown = true;
//                    alert('');
            }
        }

    });

    var gridUsers = new Ext.grid.GridPanel({
        title       : 'Пользователи',
        trackMouseOver:false,
        disableSelection:true,
        loadMask: true,
//        height      : 400,
        autoHeight  : true,
        width       : 800,
        store       : storeUsers,
//        store       : buttonDown == true ? getStore('users', true) : storeUsers,
//        deferredReander   : false,
        listeners: {
            celldblclick: function (G, row, column, e) {
                    win(formUsersRe(G.getStore().getAt(row)));
//                    Ext.Msg.alert('Info', G.getStore().getAt(row).get('name'));
                }
        },
        bbar: new Ext.PagingToolbar( {
            pageSize    : 5,
            store       : storeUsers,
//            prependButtons: true,
            displayInfo : true
        }),
        tbar: [
            {
                text: 'Добавить',
                handler: function () {
                    win(formUsers(null));
                }
            },'-', '->','-', 'Поиск: ', field, comboList
            , ' ', 'Целиком', CheckBox, '-', button
        ],
        columns: [
            {
                header      : 'Номер',
                dataIndex   : 'id',
                sortable    : true
            },
            {
                header      : 'Имя пользователя',
                dataIndex   : 'name',
                sortable    : true
            },
            {
                header      : 'Тип пользователя',
                dataIndex   : 'type',
                sortable    : true
            },
            {
                header      : 'E-mail',
                dataIndex   : 'email',
                sortable    : true
            },
            {
                header      : 'Код',
                dataIndex   : 'code',
                sortable    : true
            },
            {
                header      : 'Пароль',
                dataIndex   : 'pass',
                sortable    : true
            },
            {
                header      : 'Дата регистрации',
                dataIndex   : 'date_reg',
                sortable    : true
            },
            {
                header      : 'Последний визит',
                dataIndex   : 'date_last',
                sortable    : true
            }
        ]
    });
    return gridUsers;
}
Ответить с цитированием
  #2 (permalink)  
Старый 01.11.2010, 10:27
Аватар для Ex_Soft
Профессор
Отправить личное сообщение для Ex_Soft Посмотреть профиль Найти все сообщения от Ex_Soft
 
Регистрация: 19.12.2009
Сообщений: 164

Сообщение от DenQ Посмотреть сообщение
проблема в том что поиск работает корректно до той поры пока я не нажму кнопку для просмотра следующей страницы... если это сделать, то теряются настройки поиска(необходимые параметры в запросе сторы отсутствуют)
Запихивайте подстроку поиска в baseParams
__________________
"Helo, word!" - 17 errors 56 warnings
Ответить с цитированием
  #3 (permalink)  
Старый 01.11.2010, 17:04
Аватар для cmygeHm
Профессор
Отправить личное сообщение для cmygeHm Посмотреть профиль Найти все сообщения от cmygeHm
 
Регистрация: 12.10.2010
Сообщений: 196

storage1.on('beforeload', function() {
        storage1.baseParams = {
                            _phone: phone.getValue(),
                            _name: name.getValue()

        };
    });

Где name и phone мои поля со значениями, которые я искал.
Ответить с цитированием
  #4 (permalink)  
Старый 01.11.2010, 21:34
Аспирант
Отправить личное сообщение для DenQ Посмотреть профиль Найти все сообщения от DenQ
 
Регистрация: 28.08.2010
Сообщений: 57

cmygeHm, ну так а куда его вставить, этот код после замены на свои параметры, естественно?
Ответить с цитированием
  #5 (permalink)  
Старый 01.11.2010, 23:09
Аватар для Ex_Soft
Профессор
Отправить личное сообщение для Ex_Soft Посмотреть профиль Найти все сообщения от Ex_Soft
 
Регистрация: 19.12.2009
Сообщений: 164

Сообщение от DenQ Посмотреть сообщение
а куда его вставить, этот код после замены на свои параметры, естественно?
Ну... Если не будет никаких эстетических возражений - можно хоть сразу после определения store...
__________________
"Helo, word!" - 17 errors 56 warnings
Ответить с цитированием
  #6 (permalink)  
Старый 02.11.2010, 00:16
Аспирант
Отправить личное сообщение для DenQ Посмотреть профиль Найти все сообщения от DenQ
 
Регистрация: 28.08.2010
Сообщений: 57

cmygeHm, Ex_Soft, ребят, огромное вам человеческое спасибо.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск в тексте javascript jQuery 3 31.05.2011 11:40
Поиск текста в блоке со скроллингом lukingnu Элементы интерфейса 0 05.08.2010 22:54
Поиск слова в исходном коде html страницы klsorat2010 Ваши сайты и скрипты 1 20.05.2010 23:46
Поиск последнего слова в строке AlexFadeev Элементы интерфейса 3 01.04.2010 18:56
Поиск в массиве через JavaScript Noran Общие вопросы Javascript 0 10.08.2008 17:31