2011-06-16 115 views
0

我正在编写C#代码以合并网站集内的多个库并对它们应用分组。但是,分组不包括来自其他网站的文档,无论它们是否共享相同的元数据。下面,蓝框文档来自一个站点,绿框文档来自其他站点,并且它们不会组合在一起。合并和分组库代码问题

enter image description here

这里是我的代码,

   DataTable dt = new DataTable(); 
      DataRow dr; 
      DataColumn dc; 

      SPSite curSite = SPContext.Current.Site; 
      SPWebCollection subSites = curSite.AllWebs; 

      dc = new DataColumn("Title", Type.GetType("System.String")); 
      dt.Columns.Add(dc); 
      dc = new DataColumn("ReferenceNo", Type.GetType("System.String")); 
      dt.Columns.Add(dc); 
      dc = new DataColumn("Domain", Type.GetType("System.String")); 
      dt.Columns.Add(dc); 
      dc = new DataColumn("Created", Type.GetType("System.DateTime")); 
      dt.Columns.Add(dc); 

      for (int i = 0; i < subSites.Count; i++) 
      {     
       SPListCollection lists = subSites[i].Lists; 

       foreach (SPList list in lists) 
       { 
        if (list.Title == "Published Documents") 
        { 
         SPQuery myquery = new SPQuery(); 
         //myquery.Query = "<GroupBy><FieldRef Name='Domain' /></GroupBy><OrderBy><FieldRef Name='Created' Ascending='False' /></OrderBy>"; 
         myquery.Query = "<GroupBy><FieldRef Name='Domain' /></GroupBy>"; 

         SPListItemCollection items = list.GetItems(myquery); 

         foreach (SPListItem item in items) 
         { 
          if (item != null) 
          { 
           dr = dt.NewRow(); 

           dr["Title"] = item["Title"]; 
           dr["ReferenceNo"] = item["ReferenceNo"]; 
           dr["Domain"] = item["Domain"]; 
           dr["Created"] = item["Created"]; 

           dt.Rows.Add(dr); 
          } 
         } 

        } 

       } 
      } 

      //dt.DefaultView.Sort = "Created DESC"; 

      spGridView.AllowGrouping = true; 
      spGridView.AllowGroupCollapse = true; 
      spGridView.GroupField = "Domain"; 

      spGridView.DataSource = dt; 
      spGridView.DataBind(); 

更新::,对数据进行排序表与固定域名的问题..

**dt.DefaultView.Sort = "Domain";** 

回答

0

日食的回答是:

排序数据表与固定域名的问题..

dt.DefaultView.Sort = "Domain"; 

函数naveed的评论:

完善它为我工作。一切顺利只是我们需要有 dt.DefaultView.Sort = "Your Sorting Attribute";