2017-01-30 6 views
-5

私の変数var repFolderTreeは新しい値で古い値を保持します。古い値を持つvar型で新しい値を追加

foreach (DataRow row in _dt.Rows) 
    { 

     string strFolderData = row["ReportFolder"].ToString(); 
     var repFolderTree = crcr.GetAllReportsHierarchical(username, strFolderData); 
     repFolderTree.FolderName = "All Reports"; 
     uxAllCatalogHierarchical.Text = string.Format("<div class=\"hierarchicalCatalog\">{0}</div>", HierarchicalCatalogView(repFolderTree, 0, showFolder)); 
     } 





public CrissCrossLib.Hierarchical.CrcReportFolder GetAllReportsHierarchical(string username,string path) 
    { 
     var hierItems = GetAllReportsHierarchicalNoCache(username, path); 


    m_cacheManager.AllReportsHierarchicalCacheByUsername.Add(username, hierItems); 
    return hierItems; 
} 





private string HierarchicalCatalogView(CrcReportFolder rootFolder, int level, string showFolder) 
     { 
      _dt = _ssrsDAC.GetReportListByUser(Convert.ToInt32(Session["LoginID"])); 
      StringBuilder sb = new StringBuilder(); 
      sb.Append("<div class=\"folderBox\">"); 
      string scrollTo = ""; 
      if (PathMatch(showFolder, rootFolder.Path)) 
       scrollTo = " scrollToFolder"; 
      sb.AppendFormat("<div class=\"folderName{1}\">{0}</div>", rootFolder.FolderName, scrollTo); 
      string show = "none"; 
      if (level == 0 || PathContains(showFolder, rootFolder.Path)) 
       show = "block"; 

      sb.AppendFormat("<div class=\"folderChildren\" style=\"display:{0}\">", show); 

      foreach (CrcReportFolder subFolderLoop in rootFolder.SubFolders) 
       sb.Append(HierarchicalCatalogView(subFolderLoop, level + 1, showFolder)); 

      foreach (CrcReportItem itemLoop in rootFolder.Reports) 
      { 
       string str = itemLoop.DisplayName; 
       DataRow[] foundAuthors = _dt.Select("ReportName = '" + str + "'"); 
       if (foundAuthors.Length != 0) 
       { 
        sb.Append("<div class=\"reportRow\">"); 
        sb.AppendFormat("<a class=\"reportLink vanillaHover\" href=\"Report.aspx?path={0}\" >{1}</a>", 
         Server.UrlEncode(itemLoop.ReportPath), itemLoop.DisplayName); 
        if (!string.IsNullOrEmpty(itemLoop.ShortDescription)) 
         sb.AppendFormat("<div class=\"reportInfo\">{0}</div>", itemLoop.ShortDescription); 
        sb.Append("<div class=\"clear\"></div></div>"); 
       } 

       } 

      sb.Append("</div></div>"); 
      return sb.ToString(); 

     } 

私は私は私が最後の値を失い、現在の値が含まれ、その後

var repFolderTree = crcr.GetAllReportsHierarchical(username, strFolderData); からそのたびにループを取得していますすべての値を一覧表示していますコントロールを持っています。そう私は私が私のコードがあなたのために、いくつかのシーンを作ると思います私はこの中にコード

uxAllCatalogHierarchical.Text = string.Format("<div class=\"hierarchicalCatalog\">{0}</div>", HierarchicalCatalogView(repFolderTree, 0, showFolder)); 

のこのラインをやっているこのコントロールにループと結合した後、すべての値を得ることができることをしたいです。

+1

変数を引き出すことを意味しますか?または、渡されたすべての値のリストを作成しますか?どちらの質問もここで何百万回も答えられています。 –

+1

この質問は意味をなさない。質問の言い換えを考慮し、GetAllReportsHierarchicalのコードを表示してください。戻り値の型は? – Ben

+0

Stringを構築しますか?もしそうなら、あなたはStringBuilderを使うことができます。 どうすればいいと思いますか? – Vijay

答えて

0

リストまたはコレクションを使用してすべての値を保存し、[追加]操作でvar値を追加できます。

List<object> repFolderTree = new List<object>(); 
foreach (DataRow row in _dt.Rows) 
    { 

     string strFolderData = row["ReportFolder"].ToString(); 
     var repFolderTree = crcr.GetAllReportsHierarchical(username, strFolderData); 
repFolderTree .Add(repFolderTree); 
     repFolderTree.FolderName = "All Reports"; 
     uxAllCatalogHierarchical.Text = string.Format("<div class=\"hierarchicalCatalog\">{0}</div>", HierarchicalCatalogView(repFolderTree, 0, showFolder)); 
     } 
関連する問題