首页 > 解决方案 > 向表 C# 动态添加新行

问题描述

下面是创建表并动态显示数据库项目的代码。这很好用,我想在按钮的 onclick 事件上添加一行,并在我单击按钮时使数据持久化并且不会丢失数据。任何帮助,将不胜感激。

Table tb = new Table();
tb.BorderWidth = 1;
tb.Width = new Unit("740px");
tb.BorderStyle = BorderStyle.Solid;
tb.ID = "myTable";

TableRow tr = new TableRow();
TableRow tr2 = new TableRow();
TableRow trEndRow = new TableRow();
foreach (QuestionBuilder QB in GetQuestionsDatabySection)
{
    TableCell tc1 = new TableCell();
    tc1.Text = OQB.QuestionText;
    tc1.BorderWidth = 1;
    tr.Cells.Add(tc1);
    tb.Rows.Add(tr);

    TableCell tc2 = new TableCell();
    tc2.Controls.Add(getControl(OQB.DynamicAttributeId, "0"));
    tc2.BorderWidth = 1;
    tr2.Cells.Add(tc2);
    tb.Rows.Add(tr2);

    TableCell tcEnd = new TableCell();
    Button btn = new Button();
    btn.Text = "Add Row";
    btn.Attributes.Add("OnClick", "ButtonAddRow_Click");
    btn.Attributes.Add("runat", "server");

    tcEnd.Controls.Add(btn);
    tcEnd.BorderWidth = 1;
    trEndRow.Cells.Add(tcEnd);
    tb.Rows.Add(trEndRow);
    // Add to PlaceHolder
    phTable.Controls.Add(tb);
}

标签: c#asp.net

解决方案


由于您在 ASP.NET 中开发 Web 应用程序,因此您需要使用一些东西来管理您的状态。这是 Microsoft 对您的选项的一个很好的细分:https ://msdn.microsoft.com/en-us/library/z1hkazw7.aspx

根据数据的复杂性,视图状态和查询字符串是非常常见的实现,但该文章强调了每个选项的优缺点。一旦您决定了要使用哪个选项,就应该很容易在 Google 上找到一个如何使用它的示例。

从理论上讲,如果您愿意,您甚至可以在每次回帖时重新加载数据库中的数据。


推荐阅读