使用旧值

时间:2017-01-30 09:08:08

标签: c# var

我希望我的变量var repFolderTree保留旧值的新值。

 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 个答案:

答案 0 :(得分:0)

您可以使用List或Collection来存储所有值,使用Add操作添加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));
      }