【问题标题】:Iterating through divs from code behind c#从 C# 后面的代码中迭代 div
【发布时间】:2018-08-18 18:08:52
【问题描述】:

任何人有我怎样才能使这个少多余的想法?我需要填充以相同的内容的客户机上的多个div元素的内HTML P>

客户:

<div id="projectList_dialog1" class="listView" runat="server"></div>
<div id="projectList_dialog2" class="listView" runat="server"></div>

代码背后:

protected void loadProjectList()
    {
        var projectsPath = userDataPath + @"\" + username + @"\Projects";

        if (Directory.Exists(projectsPath))
        {
            var projects = Directory.GetDirectories(userDataPath + @"\" + username + @"\Projects");

            projectList_dialog1.InnerHtml = "<table>";
            projectList_dialog2.InnerHtml = "<table>";

            projectList_dialog1.InnerHtml += "<tr><td>Name</td><td>Date modified</td></tr>";
            projectList_dialog2.InnerHtml += "<tr><td>Name</td><td>Date modified</td></tr>";

            List<string> storedProjectNamesList = new List<string>();
            for (var i = 0; i < projects.Length; i++)
            {
                var storedProjectName = projects[i].Remove(0, projects[i].LastIndexOf('\\') + 1);
                storedProjectNamesList.Add('"' + storedProjectName + '"');

                var lastModified = System.IO.File.GetLastWriteTime(storedProjectName);
                projectList_dialog1.InnerHtml += "<tr class='" + storedProjectName + "' onclick='listViewAction(event)'><td>" + storedProjectName + "</td><td>" + lastModified + "</td></tr>";
                projectList_dialog2.InnerHtml += "<tr class='" + storedProjectName + "' onclick='listViewAction(event)'><td>" + storedProjectName + "</td><td>" + lastModified + "</td></tr>";
            }
            projectList_dialog1.InnerHtml += "</table>";
            projectList_dialog2.InnerHtml += "</table>";

            storedProjectNames = string.Join(",", storedProjectNamesList);
        }
        else
        {
            serverMessage.InnerHtml = "Code (0x3): The system cannot find the path specified.";
        }
    }

【问题讨论】:

    标签: c# innerhtml


    【解决方案1】:

    将数据分配给像innerHtml这样的局部变量,只更改元素的InnerHtml一次

    protected void loadProjectList()
    {
        var projectsPath = userDataPath + @"\" + username + @"\Projects";
    
        if (Directory.Exists(projectsPath))
        {
            var projects = Directory.GetDirectories(userDataPath + @"\" + username + @"\Projects");
    
            //create a variable
            var innerHtml = "<table><tr><td>Name</td><td>Date modified</td></tr>";
    
            List<string> storedProjectNamesList = new List<string>();
            for (var i = 0; i < projects.Length; i++)
            {
                var storedProjectName = projects[i].Remove(0, projects[i].LastIndexOf('\\') + 1);
                storedProjectNamesList.Add('"' + storedProjectName + '"');
    
                var lastModified = System.IO.File.GetLastWriteTime(storedProjectName);
    
                //add to that variable
                innerHtml += "<tr class='" + storedProjectName + "' onclick='listViewAction(event)'><td>" + storedProjectName + "</td><td>" + lastModified + "</td></tr>";
            }
            innerHtml += "</table>";
    
            //NOW set innerhtml on the objects
            projectList_dialog1.InnerHtml = innerHtml;
            projectList_dialog2.InnerHtml = innerHtml;
    
            storedProjectNames = string.Join(",", storedProjectNamesList);
        }
        else
        {
            serverMessage.InnerHtml = "Code (0x3): The system cannot find the path specified.";
        }
    }
    

    【讨论】:

    • 谢谢 DLeh!您的解决方案是如此简单和干净。我觉得我过去可能会为另一个项目这样做;不敢相信我没有看到。我猜你有时可能会在几个小时内盲目地看同一个代码。 :P
    猜你喜欢
    • 1970-01-01
    • 2012-01-04
    • 2013-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-13
    • 1970-01-01
    相关资源
    最近更新 更多