将c#数组写入aspx html页面

时间:2014-07-23 14:46:47

标签: c# asp.net

如何获取C#数组并将其写入HTML表头?

根据我所读过的内容,您应该能够使用cnippets来获取变量,但它不起作用......

C#代码

protected void Page_Load(object sender, EventArgs e)
        {
            string[] tableHeaders = {
                "Urgency", 
                "Picker", 
                "CARD", 
                "Case Order", 
                "CR #", 
                "Patient", 
                "Age", 
                "ASA", 
                "Anes Consult", 
                "Procedure", 
                "Booking Surgeon", 
                "Operating Surgeon", 
                "Ready Date", 
                "Ready Time", 
                "NPO Since", 
                "EST Time", 
                "Current Location", 
                "Postop Need", 
                "Booked by", 
                "Special Equipment", 
                "Comments"
            };
        }

HTML代码 您将在我的document.write行中看到我尝试调用tableHeaders变量。我使用javascript行变量作为计数器。

<thead>
  <tr>
    <script type="text/javascript">
      for (var row = 0; row <= 21; row++) {
        document.write("+<%= tableHeaders[+row+] %>+")
      }
    </script>
   </tr>
 </thead>

3 个答案:

答案 0 :(得分:1)

我不应该尝试使用Java脚本来执行此操作。以下工作完美。

 <%
     for (int td = 0; td <= 20; td++)
     {
         Response.Write("<td>" + tableHeaders[td] + "</td>");
     }
 %>

答案 1 :(得分:0)

您正在Page_Load中创建本地变量,然后尝试从页面脚本访问它。你可以改为成为一个班级成员:

Page_Load之外或任何其他方法):

private string[] tableHeaders = {
    "Urgency", 
    "Picker", 
    "CARD", 
    "Case Order", 
    "CR #", 
    "Patient", 
    "Age", 
    "ASA", 
    "Anes Consult", 
    "Procedure", 
    "Booking Surgeon", 
    "Operating Surgeon", 
    "Ready Date", 
    "Ready Time", 
    "NPO Since", 
    "EST Time", 
    "Current Location", 
    "Postop Need", 
    "Booked by", 
    "Special Equipment", 
    "Comments"
};

答案 2 :(得分:0)

假设您要为表创建实际的标题单元格,除非您需要将内容转储到JavaScript中,否则您应该能够在c#代码中完成所有操作。在<tr>元素和runat属性中添加ID:

<thead>
    <tr ID="headerRow" runat="server">
    </tr>
</thead>

然后在页面加载中,您可以单独添加每个标题元素:

protected void Page_Load(object sender, EventArgs e)
{
    string[] tableHeaders = { // blah blah };

    foreach(var header in tableHeaders)
    {
        var tmp = new TableHeaderCell();
        tmp.ID = "TH_" + header;
        tmp.Text = header;
        headerRow.Cells.Add(tmp);
    }
}

然后,当页面呈现时,它应该将每个呈现为行中的<th>元素。