Я пытаюсь получить количество элементов в списке на основе представления. Каждый метод, который я пробовал до сих пор, возвращает только общий итог списка. Я пробовал почти каждый метод, с которым столкнулся при поиске, и все заканчивается тем же результатом.
Вот один из методов, которые я пробовал:
SPWeb web = SPContext.Current.Web;
SPView view = web.GetViewFromUrl("url to my view");
int count = view.ParentList.GetItems(view).Count;
В моем списке 28 элементов, но представление, на которое я ссылаюсь, фильтрует его и показывает четыре элемента. Я ожидаю, что мой счет будет 4, а не 28 - но 28 я всегда получаю.
Вот еще один метод, который я пробовал:
SPSite site = SPContext.Current.Site;
SPWeb web = site.OpenWeb();
SPQuery MyQuery = new SPQuery();
MyQuery.Query = "<Query><Where><Eq><FieldRef Name='strStatus' /><Value Type='Text'>submitted</Value></Eq></Where></Query>";
IEnumerable<SPListItem> results = web.Lists["Requests"].GetItems(MyQuery).Cast<SPListItem>();
// results.Count() is 28... should be 4
Итак, в этом методе я пропускаю представление и просто пытаюсь передать запрос CAML. При тестировании моего запроса в U2U возвращаются четыре результата, как и ожидалось ...
В целом, я делаю это внутри обработчика события OnMenuItemDataBound моего пользовательского элемента управления меню. Я не знаю, имеет ли это какое-то значение, но идея, к которой я стремлюсь, заключается в том, что каждый элемент, который ссылается на представление в определенном списке, будет показывать количество элементов в этом представлении рядом со ссылкой. 1013 *
Есть идеи, почему я получаю итоговый список вместо отфильтрованных? Спасибо!