将动态动态添加到HTML表中

时间:2012-07-17 09:08:32

标签: c# asp.net html-table

我有一个包含一些表格的asp.net网站。但是这些不是asp:表,即它们是以这种方式构建的简单HTML表:

 <table><tr><td></td></tr></table> 

现在我想知道是否可以从后面的代码(即C#)动态地向这个表添加行,如果可以,我该怎么做呢?

5 个答案:

答案 0 :(得分:3)

你可以给它一个Id和Set runat =“server”属性,并使用你给它的Id后面的代码使用它

System.Web.UI.HtmlControls.HtmlTableRow r=new System.Web.UI.HtmlControls.HtmlTableRow();
            System.Web.UI.HtmlControls.HtmlTableCell c = new System.Web.UI.HtmlControls.HtmlTableCell();
            c.InnerText = "New Cell";
            r.Cells.Add(c);
            T.Rows.Add(r);

其中T是您表格的ID

答案 1 :(得分:2)

已经有一段时间了,但ASP.NET Webforms中有转发器控件用于此类内容。

这是一篇很好的文章,介绍了这个概念:Data Repeater Controls in ASP.NET

我认为这比使用AJAX / JScript

进行攻击更容易

除此之外:Daniel Casserly是对的 - 如果你在MVC中这样做很容易(如果你使用Razor-Syntax则更容易),因为它会翻译做类似的事情:

<table>
    @foreach (var item in Model)
    {
        <tr>
            <td>@item.Name</td>
            ... whatever you need here ...
        </tr>
    }
</table>

答案 2 :(得分:1)

您可以使用JQuery执行此操作,但为此您需要提供和Id或类或只搜索表数组然后向其中注入行

答案 3 :(得分:1)

答案 4 :(得分:0)

我认为最好根据后面的代码创建整个HTML表。 为此,我们可以添加一个文字,并在后面的代码中使用它,以便从后面的代码中添加表结构。

例如让我们制作一个HTML的Birds明细表。      为了使说明简短,我没有包括充满鸟类细节的数据表部分。

if (dtBirdsDetail.Rows.Count > 0)
    {
      litBirdsTable.Text = "<center><table id='tbldata' cellspacing='0' cellpadding='1' border='1' style='border-collapse: collapse;'>" + System.Environment.NewLine;
      litBirdsTable.Text += "<tr>";

      //add datatable columns to html table as heading
for (int liColumnIndex = 0; liColumnIndex < dtBirdsDetail.Columns.Count;liColumnIndex++)
       {
         litBirdsTable.Text += "<th>" + dtBirdsDetail.Columns[liColumnIndex].ColumnName 
                             + "</th>" +   System.Environment.NewLine;
       }
       litBirdsTable.Text += System.Environment.NewLine + "</tr>";

       //add datatable rows to html table
       for (int liRowIndex = 0; liRowIndex < dtBirdsDetail.Rows.Count; liRowIndex++)
       {
         litBirdsTable.Text += "<tr>";
         litBirdsTable.Text += "<td>" + dtBirdsDetail.Rows[liRowIndex]["ID"] + "</td>" +              
                                System.Environment.NewLine;
         litBirdsTable.Text += "<td>" + dtBirdsDetail.Rows[liRowIndex]["BirdName"] + " 
                               </td>" + System.Environment.NewLine;
         litBirdsTable.Text += "<td>" + dtBirdsDetail.Rows[liRowIndex]["TypeOfBird"] + " 
                               </td>" + System.Environment.NewLine;
         litBirdsTable.Text += "<td>" + dtBirdsDetail.Rows[liRowIndex]["ScientificName"] 
                             + "</td>" + System.Environment.NewLine;
         litBirdsTable.Text += "</tr>";
       }
        litBirdsTable.Text += "</table></center>";
    }

有关详细说明,请访问此链接:

Request object not passed in pipeline