Проблемы фильтра Smartgwt Listgrid - PullRequest
2 голосов
/ 12 января 2012

У меня проблемы с фильтром ListGrid. Проблема, с которой я сталкиваюсь, заключается в том, что когда я применяю любой фильтр в ListGrid для редактирования любого ListGridRecord, редактируемые записи которого просто удаляются, как только я удаляю фильтрованный текст из фильтра списка.

Когда я пытаюсь получить записи из списка после удаления фильтра вручную, а также автоматически с помощью listgrid.clearCriteria (). тогда все мои изменения будут удалены. Надеюсь, я могу понять. Это черт, с которым я сталкиваюсь какое-то время. Если вам нужна дополнительная информация, пожалуйста, дайте мне знать. Заранее спасибо

Ответы [ 3 ]

2 голосов
/ 20 января 2012

Я нашел решение этой проблемы.на самом деле, когда я удаляю отфильтрованный текст из списка, то по умолчанию список пытается получить данные с сервера.установив свойство setDataFetchMode (FetchMode.LOCAL), запретите списочной сетке получать данные с сервера, когда вы удалили отфильтрованный текстСпасибо всем, кто оказывает мне помощь.

1 голос
/ 13 января 2012

Об исчезновении записей см. Этот вопрос в FAQ по SmartGWT:

http://forums.smartclient.com/showthread.php?t=8159#aGrid

При использовании clearCriteria () и внесенных изменений неясно, как вы вносите эти изменения, но эти изменения могут исчезнуть, если изменения были применены неправильно, а clearCriteria () просто загружает новые записи с сервера. См. Обзор редактирования сетки, чтобы понять, как хранятся записи и их правки («редактировать значения»):

http://www.smartclient.com/smartgwtee/javadoc/com/smartgwt/client/docs/Editing.html

0 голосов
/ 09 июня 2017

smartgwt 6, я видел лучший способ сделать это, вы можете сослаться на витрину

если вы используете SmartGWT 3 или 4, вы можете попробовать следующее Grid.java:

    this.addFilterEditorSubmitHandler(new FilterEditorSubmitHandler(){

        @Override
        public void onFilterEditorSubmit(FilterEditorSubmitEvent event) {
             filterByEditor(event.getCriteria());

             //cancel the event to avoid the server side fetch  
             event.cancel();
        }

    });

DataSource.java

после извлечения данных, вызовите, чтобы установить начальный набор записей. zzzzzDataSrc.setCacheData (gridRecs);


public void filterByEditor (Criteria cr) {

    AdvancedCriteria criteria =     
            new AdvancedCriteria(FLD_NM, OperatorId.STARTS_WITH, cr.getAttributeAsString(FLD_NM)) ; 
    //initialize with the complete set of rows 
    this.setData(this.getDataSource().getCacheData());
    //filter using the criteria
    this.setData(this.getDataAsRecordList().findAll(criteria)); 

}
...