【问题标题】:AddRow from codebehind in asp.net table does not add a row properly来自 asp.net 表中代码隐藏的 AddRow 未正确添加行
【发布时间】:2015-01-18 06:55:00
【问题描述】:

我有一个asp:Table,在.aspx 页面中定义了标题单元格。有一个AddRow 按钮,单击该按钮应在表格中添加一个新行。

代码如下:

<asp:Table ID="tblnew" runat="server" BorderStyle="Inset" GridLines="Vertical">
            <asp:TableRow>
                <asp:TableCell>S.NO</asp:TableCell>
                <asp:TableCell>Service</asp:TableCell>
                <asp:TableCell>Material Type</asp:TableCell>
                <asp:TableCell>
                    <asp:Button ID="btnAddRow" runat="server" Text="Add Row" OnClick="CreateRow" />
                </asp:TableCell>
            </asp:TableRow>
        </asp:Table>

后面的代码是:

protected void CreateRow(object sender, EventArgs e)
        {
            TableRow tr = new TableRow();
            tblnew.Controls.Add(tr);
            for (int i = 0; i < 3; i++)
            {
                TableCell tc = new TableCell();
                TextBox txt = new TextBox();
                tc.Controls.Add(txt);
                tr.Controls.Add(tc);
            }
            TableCell tc1 = new TableCell();
            Button btn = new Button();
            btn.Text = "Remove";
            tc1.Controls.Add(btn);
            tr.Controls.Add(tc1);
        }

第一次单击AddRow 按钮时一切正常。

添加了一个新行,但是当我再次单击AddRow 按钮时,没有添加另一行。我想我在这里遗漏了一些关键的东西。

另外,我还没有在Remove 按钮单击上编写任何代码,但它会在单击时删除特定行,猜测可能是一些postback 的事情正在发生。

Page_Load:

AddRow按钮点击后:

请高手帮忙。

【问题讨论】:

    标签: c# asp.net row postback


    【解决方案1】:

    由于PosBack,您添加的行不会持续存在, 你可以使用ViewState

    或者看看:

    Dynamic generated TableRows

    或者这里是您讨论的关于如何在每次单击按钮时在 ASP 表中生成文本框行并保留postbacks 上输入的值的答案:

    Dynamic Table Row.

    希望这会对你有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-01
      • 2011-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多