2009-08-21 9 views

Odpowiedz

2

Refer you this Artykuł o liczbie zwróconych wierszy bazuje na używanym widoku, Zmień rowlimit w widoku.

4

Z mojego doświadczenia trzeba opcji: 1. Zmień widok użyć podczas wywoływania metody getlistitems do poprawny widok, który zwraca wszystkie wiersze 2. Sprawdź i zobacz, czy umieściłeś rowlimit w swojej metodzie getlistitems. Jeśli chcesz przywrócić wszystko w bieżącym widoku, możesz użyć "0", patrz przykład poniżej: XmlNode doc = doclist.GetListItems ("Moja lista", "Mój widok", zapytanie, viewFields, "0", queryOptions , zero);

Możesz także spróbować przejść do swojej witryny SharePoint, przejść do listy, z której pobierasz, a następnie wybrać ustawienia i zmodyfikować domyślny widok/stworzyć własny widok i rozwinąć grupę Sumy. W grupie Totals poszukaj unikalnego identyfikatora dla swojej listy (np. ID), a następnie w menu obok wybierz COUNT, a następnie zapisz swój widok. Po załadowaniu listy porównaj całkowitą liczbę, która będzie teraz wyświetlana w tym widoku z liczbą pozycji zwróconych przez zapytanie. Daj mi znać, jeśli nadal nie są takie same. :)

1

GetListItems() ogranicza wyniki w oparciu o ograniczenie wiersza widoku, którego używasz jako drugiego parametru w wywołaniu metody. Jeśli potrzebujesz wszystkie wiersze zostać zwrócone:

  1. Przejdź do witryny programu SharePoint za pośrednictwem swojego ulubionego (lub najmniej ulubioną) Przeglądarka WWW
  2. Przejdź do listy
  3. Wybierz widok, który odpowiada GUID jesteś używanie jako drugiego parametru wywołania metody GetListItems() (patrz przykład poniżej)
  4. Wybierz (z menu rozwijanego Widok) "Zmodyfikuj ten widok"
  5. Przewiń do końca i rozwiń opcję "Limit produktów" "
  6. Zestaw wysoki numer (użyłem 9000) jako "Liczba elementów do wyświetlenia" i wybierz "Ogranicz całkowitą liczbę produktów zwróconych do określonej kwoty."
  7. Kliknij OK.

    Service.GetListItems (ListGuid, ViewGuid, zapytań, viewFields, RowLimit, queryOptions, zero);

Jeśli RowLimit metoda parametr jest mniejszy niż widok Row Ograniczyć trzeba było ustawić w SharePoint, a następnie wyniki są ograniczone do wartości parametru.

1

Tylko w odniesieniu do innych osób, które przybywają tutaj z google.

Muszę wyodrębnić dane z dotychczasowego systemu i mieć ten sam dokładny problem. Różnica polega na tym, że nie miałem kontroli nad listą akcji, więc nie mogę zmienić domyślnego widoku.

var items = listSvc.GetListItems(listname, null, null, null, null, null); 

var pager = items.ChildNodes[1].Attributes["ListItemCollectionPositionNext"] != null ? items.ChildNodes[1].Attributes["ListItemCollectionPositionNext"].Value : string.Empty; 
var pagerXml = new XmlDocument(); 
pagerXml.InnerXml = "<QueryOptions><Paging ListItemCollectionPositionNext=\"\" /></QueryOptions>"; 
var pagerNode = pagerXml.GetElementsByTagName("QueryOptions")[0]; 

while (!string.IsNullOrEmpty(pager)) 
{ 
    pagerNode.ChildNodes[0].Attributes[0].Value = pager; 
    var temp = listSvc.GetListItems(listname, null, null, null, null, pagerNode); 
    foreach (XmlNode c in temp.ChildNodes[1].ChildNodes) 
    { 
     var c2 = items.OwnerDocument.ImportNode(c, true); 
     items.ChildNodes[1].AppendChild(c2); 
    } 

    pager = temp.ChildNodes[1].Attributes["ListItemCollectionPositionNext"] != null ? temp.ChildNodes[1].Attributes["ListItemCollectionPositionNext"].Value : string.Empty; 
} 

Jest to jeden raz użyć kodu, więc zostawiam ją do czytnika, aby uporządkować ją: D

ale sens jest, jeśli nie można dostać go w jednej rozmowy, po prostu go w partiach, używając rozmiaru strony widoku jako wielkości partii. Ostatnim argumentem GetListItems() akceptuje parametr XmlNode i można przekazać coś takiego:

<QueryOptions><Paging ListItemCollectionPositionNext="{paging-option}" /></QueryOptions> 

gdzie {paging-option} jest wartość atrybutu (ta sama nazwa) rs:data

1

Set rowLimit na 0

var rowLimit = "0"; 
var result = client.GetListItems("ListName", null, query, viewFields, rowLimit, queryOptions, null); 

Uwaga na limity czasu. Jeśli masz wiele pozycji na liście programu SharePoint, możesz osiągnąć limit czasu http. Limity czasu można zmienić w usługach IIS i web.config witryny SharePoint.

Powiązane problemy