2009-03-20 2 views
2

У меня есть Gridview, связанный с IList. Я хотел бы иметь пейджинг «более безопасный путь» (только выборка в детали мне нужно), поэтому я создал Metod на моем хранилище, как этотNHibernate paging и привязка к Gridview

public Ilist<Item> GetItems(int from, int number){ ... } 

Дело в том, что wheen я связать его, это только показывает мне n элементов и не отображает элементы управления поисковым вызовом. Я пытался найти способ рассказать GridView, сколько элементов у меня есть на моем результирующем с

public int CountItems{ get{ ... } } 

, но я не найти место, чтобы сказать GV это значение.

Какова стратегия здесь? Нужно ли иметь ObjectDS? Я отказываюсь верить!

Что делать, если у вас есть пейджинг?

ответ

0

К сожалению, вам нужен объект Data Data Source или реализация пользовательского источника данных. Вот ссылка на документ msdn, который упоминает его http://msdn.microsoft.com/en-us/library/5aw1xfh3.aspx. Datagrid действительно поддерживал выполнение того, что вы хотите, но ms не делал то же самое для GridView.

Я предполагаю, что вариантом было бы создать какой-то фиктивный настраиваемый источник данных, который бы разоблачил методы/события, которые вам нужны, чтобы по-прежнему контролировать процесс за его пределами.

+0

не ответ, которого я ожидал, но эй! что можно сделать U? Thnks !!!!! –

0

Я также столкнулся с той же проблемой, когда implementing paging in an ASP.NET gridview using NHibernate. Это разочаровывающее ограничение GridView, если вы реализуете свои собственные функции подкачки.

В то время, только три варианта которые я видел:

  1. создать отдельный пользовательский элемент управления, который реализует пользовательский навигации функциональность, которая взаимодействует с GridView управления
  2. создать производный класс, который наследуется от GridView контроля и добавить пользовательские функции навигации
  3. использование ObjectDataSource

Я пошел с базовой реализацией # 1, так как это было проще сделать, чем # 2 и гораздо более предпочтительным, чем использование # 3, которое не было бы хорошо связано с шаблоном модели-представления-презентатора, который мы использовали в проекте (а также что делает установку более сложной).

1

NHibernate имеет собственный класс, который преобразует IQueryable в DataTable Вам необходимо создать объект ObjectDataSource и передать его из вашего DAO в NHybernate. ObjectDataSource требует, чтобы DataTable выполнял подкачку, фильтрацию, редактирование.