Обновление Datatable при кликньи подключенного к ней пейджера .

  • Автор темы 11BOSS11
  • Дата начала
1

11BOSS11

#1
Есть DataTable, в нем вычисляется в сорсе масив который и присваивается этому тейблу.
К DataTable подключен пейджер, вот.
При листании пейджера в DataTable перещитывает соурс, вот хотя он ведь уже должен быть загружен, и просто перелистыватся, :lovecodeby:

при обемах документов 10 000 нужно жадть по 20 секунд пока перещитается соурс..=(

Можна ли как то сделать чтобы соурс DataTable высчитывался 1 раз при загрузке страници, а при листании пейджера просто отресовывал то тчо надо, без перещета соурса DataTable. :what?:
 

Zeka

Well-known member
01.09.2009
219
0
#2
Как вариант, закэшировать можно...
Код:
if(viewScope.get("myArray") == null){
var newArray = {....}
viewScope.put("myArray", myArray)
return myArray
}else{
return viewScope.get(myArray)
}
 
1

11BOSS11

#3
Как вариант, закэшировать можно...
Код:
if(viewScope.get("myArray") == null){
var newArray = {....}
viewScope.put("myArray", myArray)
return myArray
}else{
return viewScope.get(myArray)
}
делал подобным образом:
- создаю компютед филд, в нем вычисляю необходимый арей, запихиваю его в реквест скоуп; (вычисляю при загрузке страници!)
- в дайта тейбле возвращаю из скоупа масив!(вычисляю динамически!)

вот при загрузке страници все отлично подргужается в дейта тейбл, но при нажатии на пейджер дайта тейбл обнуляется и все, почему?
 

Mady

Well-known member
16.09.2006
65
0
#4
Может быть можно поступить так....

Создать в java bean Test
прописать в faces-config.xml
<managed-bean>
<managed-bean-name>Test</managed-bean-name>
<managed-bean-class>beans.Test</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>

создать в метод для определения dataSource
public class Test {
List dataSourse;
public List getDataSource(){
if (dataSourse!=null) return dataSourse;
//... Получение dataSourse
return dataSourse;
}

}

Причем элементами List могут быть объекты.В прочем можно посмотреть тут
 
1

11BOSS11

#5
Может быть можно поступить так....

Создать в java bean Test
прописать в faces-config.xml
<managed-bean>
<managed-bean-name>Test</managed-bean-name>
<managed-bean-class>beans.Test</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>

создать в метод для определения dataSource
public class Test {
List dataSourse;
public List getDataSource(){
if (dataSourse!=null) return dataSourse;
//... Получение dataSourse
return dataSourse;
}

}

Причем элементами List могут быть объекты.В прочем можно посмотреть тут
я так понимаю это делается для того чтобы на жава уже можно было работать с различными другими ресурсаси(как SQL базы например)и оперировать данными в нотсе..

мне кажется это не поможет в моей проблеме...
может в настройках дайта тейбла есть какие то параметры которые определяют чтобы данные в него заносились 1 раз, а при кликаьии пейджера просто листались..
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 584
271
#6
как по мне - пэйджер должен "подчитывать" данные в датасорц, а не качать все сразу
 

Mady

Well-known member
16.09.2006
65
0
#7
не обязательно SQL это может быть все что угодно. массив данных....
 
1

11BOSS11

#8
как по мне - пэйджер должен "подчитывать" данные в датасорц, а не качать все сразу
в дайта сорсе тейбла выесленная колекция , пейдежр стоит на 1й вкладке , показано в дайта тейбле 20 документо!
при переходе на 2ю вкладку пейджера перещитывается весь дайта сорс дайта тейбла и отображается следущих 20 документов! вот

так вот мне это не надо! как сделать так чтобы при загрузке дайта тейбла выщитывался его дайта сорс, а при листаньи пейджером не чего не щиталось,
потомучто у меня еще и сортировка там ....


Добавлено:
не обязательно SQL это может быть все что угодно. массив данных....
ну я это понял что можна все что угодно, просто в моем случае мне кажется в этом нету необходимости, проблему то не решит.. :)
 
1

11BOSS11

#10
в "нормальном" случае - пэйжер для навигации по неподгруженным частям коллекции (для того он и создаётся)
ну хорошо, а обойти это можно?
просто получается он не подргужает и счытает только выдимю часть колекции, а считает всю колекцию, а отображет видимкю.. вот...
дейта соурс дайтатейбла пересчитывается полностью,..
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 584
271
#11
я не могу понять - зачем вам пэйджер, если колекцию берёте всю
юзайте dojo grid (например)