2009-12-14 3 views
1

У меня есть веб-сервис, который возвращает мне некоторые данные, я массирую эти данные и использую это как источник данных для моего radgrid (telerik). Источник данных довольно большой и хотел бы его разбивать на страницы. Я нашел несколько проблем, когда я постраничный его на стороне сервераTelerik RadGrid: grid clientside pagination

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

  2. Во время обратной передачи RadGrid1.Items.Count случается, что количество элементов, получающих разбиение на страницы (например, 25 - в моем случае), который ожидается, поскольку все элементы в источнике данных не связаны. Это, конечно, не проблема. Реальная проблема заключается в том, что у нас есть некоторые флажки, которые проверяются на основе некоторых условий бизнеса. Мы добавим это к нашему бизнес-объекту/БД позже. Поэтому, если пользователь не перемещал все страницы, эти «проверенные» элементы не добавляются, поскольку разбиение на страницы ограничивает «Элементы» в сетке теми, которые привязаны к этому конкретному индексу страницы.

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

Есть ли способ сделать это?

Если бы это был обычный asp.net GridView, может кто-то момент мне хорошую статью, которая будет служить моя цель

Ram

PS: кто еще думает, что radgrid сумасшедший? (К сожалению, я не сделал этот выбор)

+0

Рассматривали ли вы добавить слой кэширования для вашего приложения? Затем вы можете перезагрузить данные из памяти, не нажимая на свой веб-сервис. –

+0

Эй, Кевин, Хорошее предложение. Благодарю. мы не можем кэшировать результаты WS, так как это очень специфичный запрос – ram

+2

+1 для мышления radgrid сумасшедший – Csharp

ответ

-1

[У меня нет никакого опыта в использовании RadGrid, а также Telerik, поэтому такое решение может/не может работать для вас]

Silverlight 3 имеет нативный поддержка для разбивки на страницы, вы можете получить дополнительную информацию по адресу PagedCollectionView

BRIJ MOHAN также написал хороший учебник о том, как использовать этот класс, а также другие интересные функции, такие как группировка столбцов.

http://weblogs.asp.net/brijmohan/archive/2009/08/01/silverlight-3-datagrid-columns-grouping-using-pagedcollectionview.aspx

0

Недавно во время моей реализации проекта (который построен с RadControls и RadGrid, в частности) я нашел удобный пример, который показывает, как получить данные сетки из веб-службы и осуществлять подкачку с помощью одного вызова к этой сети оказание услуг. Проверьте это:

http://demos.telerik.com/aspnet-ajax/grid/examples/client/declarativedatabinding/defaultcs.aspx

Дик

+0

Я не могу напрямую вызвать WS, мне пришлось бы массировать данные. И эта часть кода находится в пользовательском элементе управления, который добавляется динамически на страницу.И боюсь, что мы не можем иметь веб-метод в пользовательском управлении. http://www.dotnetmonster.com/Uwe/Forum.aspx/asp-net-web-services/5849/Web-methods-in-user-controls – ram