Неожиданные результаты при использовании .net ajax и подкачки в веб-части SharePoint с помощью C#C#

Место общения программистов C#
Anonymous
Неожиданные результаты при использовании .net ajax и подкачки в веб-части SharePoint с помощью C#

Сообщение Anonymous »

Хорошо, когда веб-часть загружается, я извлекаю из такого списка функцию CreateChildControls():

Код: Выделить всё

String userGroup = GetProfileProperty(SPContext.Current.Web.CurrentUser.LoginName);//get user login's newsgroup // "All";

if (!string.IsNullOrEmpty(userGroup) && !userGroup.Equals("All"))
{
qry.RowLimit = 5;
camlquery = "" + userGroup + "";
qry.Query = camlquery;
items = newsList.GetItems(qry);
//Print items inside a ajax panel....

}
else
{
qry.RowLimit = 5;
camlquery = "";
qry.Query = camlquery;
items = newsList.GetItems(qry);
////Print items inside a ajax panel....
}
Я пока не использую пейджинг, но сохранил список запросов в элементах var. Когда пользователь нажимает кнопку, панель обновления очищает текущие элементы управления и выполняет еще один запрос для получения новых элементов, но на этот раз я использую разбиение по страницам (см. ниже)

Код: Выделить всё

        int lastID = items[items.Count - 1].ID;//last news item id of current page

//Get Web Context
SPWeb web = SPContext.Current.Web;

//Clear old panel
UpdatePanel up = (UpdatePanel)FindControl("Panel");
up.ContentTemplateContainer.Controls.Clear();//clear container of old news items

SPQuery qry = new SPQuery();//get query

qry.RowLimit = 5;
string camlquery = "";
qry.Query = camlquery;
SPListItemCollectionPosition position = new SPListItemCollectionPosition("Paged=TRUE&p_ID=" + lastID.ToString());
qry.ListItemCollectionPosition = position;
items = web.Lists["News Wire"].GetItems(qry);// newsList.GetItems(qry);

//print items inside ajax panel....
Он меняет страницу, но возвращает больше элементов, чем необходимо. Я получу пять при первой загрузке веб-части, но когда я нажимаю кнопку, которая запускает событие, чтобы получить больше записей списка, я получаю первый элемент следующей страницы, а также первые три элемента первой страницы. Примечание. В моем списке всего шесть пунктов. Я ограничил свой RowLimit до 5, но когда я загружаю вторую страницу, я получаю 4 элемента и 3 с первой страницы.

Подробнее здесь: https://stackoverflow.com/questions/129 ... t-with-c-s

Вернуться в «C#»