询问者
PageInfo 如何用?

问题
-
query.PageInfo = new PagingInfo();
query.PageInfo.Count = 1;
query.PageInfo.PageNumber = 2;
我如何得到第二页的数据?
我的目的是这样的,我想遍历一个实体的所有记录,后来发现实体记录超过一定数目后(如1W多行)RetrieveMultiple()会出错
当只有几千(如7K多)则可以正常查出。
我想是否可以利用PageInfo分页,但由于不了解用法,sdk中也没看太明白,想知道我如何精确知道该分多少页(不知道实体记录数的情况,是否可以查出记录个数?)
并且如何访问每一页的数据?
全部回复
-
我看了刀客回答的另一个帖子http://social.microsoft.com/forums/zh-CN/dymanicscrmzhchs/thread/2f70d498-d395-4bab-b167-cc54979d07e5
大部门明白了,还有一点不明白:
PagingCookie 刀客说是记录Guid 的,但我这里执行完RetrieveMultiple()
为什么PagingCookie是空串?而不是xml? -
int count = 0; int pageNumber=1; ProductPriceLevelToExtension ext=new ProductPriceLevelToExtension (MyCrmService ); bool bEof=false ; RetrieveMultipleRequest request=new RetrieveMultipleRequest (); RetrieveMultipleResponse response=null; QueryExpressionHelper query = new QueryExpressionHelper(EntityName.productpricelevel.ToString()); query.Columns.AddColumns(new string[] {"productid", "pricelevelid", "productpricelevelid"}); query.EntityName =EntityName.productpricelevel.ToString(); PagingInfo page=new PagingInfo (); page.Count =20; while (!bEof ) { page.PageNumber =pageNumber; query.PageInfo = page; request.Query = query.Query; request.ReturnDynamicEntities = true; response=(RetrieveMultipleResponse)_service.Execute (request ); bEof =(response.BusinessEntityCollection.BusinessEntities.Length ==20?false:true); if (response.BusinessEntityCollection.BusinessEntities.Length>0) { foreach(DynamicEntity dy in response.BusinessEntityCollection.BusinessEntities ) { if (!dy.Contains("productid")) throw new Exception("productid not exists in productpricelevel"); Lookup lookupProductId = dy["productid"] as Lookup; if (!dy.Contains("pricelevelid")) throw new Exception("pricelevelid not exists in productpricelevel"); Lookup lookupPriceLevelId = dy["pricelevelid"] as Lookup; ext.PriceLevelId =lookupPriceLevelId.Value.ToString(); ext.ProductId =lookupProductId.Value.ToString (); ext.Execute (); Console.WriteLine("Number:{0}, pricelevelname:{1},product:{2}", ++count, lookupPriceLevelId.name , lookupProductId.name ); } } pageNumber+=1; } }
這是我的部份代碼如果取總頁數我覺得應該是用count一下
韓建興 http://jamson.cnblogs.com