本文通過SPQuery的RowLimit屬性來實現對moss文檔庫文檔的只取一定條目的分頁效果。
String queryString=="<Where><Contains><FieldRef Name='Status'/>" +
"<Value Type='Text'>Com</Value></Contains></Where>";
//查詢'Status'包含Com的項;SPList docLib= web.GetList("http://xxxx");SPQuery query=new SPQuery();query.Query=querysString;
//下面開始做判斷,主要運用viewstate來存儲相關值;//查看viewstate是否爲空,如果爲空,則說明是首次查詢,並把queryString的值賦給viewstate;if (ViewState["querystring"] == null)
ViewState["querystring"] = queryString;
//下面判斷不爲空的情況,即頁面已經做過查詢了
else
{
{
//此處判斷queryString是否已改變,即查詢條件是否改變
//下面的情況是查詢條件改變:
if (ViewState["querystring"].ToString() != queryString)
{
if (ViewState["querystring"].ToString() != queryString)
{
Session["pageinfo"] = null; //這個session是用來存儲item.ListItemCollictionPosition;
ViewState["querystring"] = queryString;
}
else
{
if (Session["pageinfo"] != null && repeat == 1)//repeat是用來區分是上一頁還是下一頁,1爲下一頁
{
string strpage = ((Microsoft.SharePoint.SPListItemCollectionPosition)Session["pageinfo"]).PagingInfo;
{
string strpage = ((Microsoft.SharePoint.SPListItemCollectionPosition)Session["pageinfo"]).PagingInfo;
if (ViewState["pageindex"] == null)//用來儲存上一頁,當前頁,下一頁的item.ListItemCollictionPosition,通過這個只來判斷是那一頁;
{
ViewState["pageindex"] = strpage;
}
else
{
strpage = ViewState["pageindex"] + ";" + strpage;
ViewState["pageindex"] = strpage;
}
}
}
}
{
ViewState["pageindex"] = strpage;
}
else
{
strpage = ViewState["pageindex"] + ";" + strpage;
ViewState["pageindex"] = strpage;
}
}
}
}
query.RowLimit = (uint)docPerPage;//每頁的文檔數if (repeat == 1)
{
if (Session["pageinfo"] != null)
query.ListItemCollectionPosition = (Microsoft.SharePoint.SPListItemCollectionPosition)Session["pageinfo"];
}
if (repeat == 2)
{//處理ViewState["pageindex"];
if (ViewState["pageindex"].ToString().Contains(";"))
{
string[] strpage = ViewState["pageindex"].ToString().Split(';');Session["pageinfo"] = new Microsoft.SharePoint.SPListItemCollectionPosition(strpage[strpage.Length - 2]);
query.ListItemCollectionPosition = (Microsoft.SharePoint.SPListItemCollectionPosition)Session["pageinfo"];
ViewState["pageindex"] = null;
for (int j = 0; j < strpage.Length - 1; j++)
{
if (j == 0)
ViewState["pageindex"] = strpage[j];
else
ViewState["pageindex"] = ViewState["pageindex"] + ";" + strpage[j];
}}
else
ViewState["pageindex"] = null;}SPListItemCollection items = docLib.GetItems(query);//你可以處理你的items了//最後還要處理item.ListItemCollictionPosition;query.ListItemCollectionPosition = items.ListItemCollectionPosition;
Session["pageinfo"] = items.ListItemCollectionPosition;
if (Session["pageinfo"] == null)
{
lbNextPage.Enabled = false;
lbNextPage2.Enabled = false;
}
else
{
lbNextPage.Enabled = true;
lbNextPage2.Enabled = true;
}
if (ViewState["pageindex"] == null)
{
lbPrePage.Enabled = false;
lbPerPage2.Enabled = false;
}
else
{
lbPrePage.Enabled = true;
lbPerPage2.Enabled = true;
}