无法通过Ajax事件处理程序访问元素(使用更新面板)

时间:2015-02-09 17:12:42

标签: c# asp.net webforms

aspx看起来像这样:

            <asp:Panel ID="MedChangeScroll" CssClass="table-responsive scrollBlock" runat="server">
                <asp:Table ID="MedChangeTable" CssClass="table table-striped table-hover table-bordered" runat="server"></asp:Table>
            </asp:Panel>
            <asp:Button ID="EnableAddMedChangeBtn" runat="server" CssClass="btn btn-success" Text="Add Med Change" OnClick="enableAddMedChange" />
            <asp:Button ID="CancelAddMedChangeBtn" runat="server" Style="display: none;" CssClass="btn" Text="Cancel" OnClick="cancelAddMedChange" />

所有内容都放在更新面板中。单击EnableAddMedChangeBtn,我运行以下命令:

public void enableAddMedChange(object sender, EventArgs e)
        {

            TableRow tableRow = new TableRow();
            MedChangeTable.Rows.Add(tableRow);
            tableRow.TableSection = TableRowSection.TableBody;

            CancelAddMedChangeBtn.Style.Add("display", "inline-block");
            EnableAddMedChangeBtn.Style.Add("display", "none");
        }
}

换句话说,当点击enableAddMedChangeBtn时,我向表中添加一行并显示取消按钮。

现在,当单击取消按钮时,我无法访问我在取消按钮的事件处理程序中第一次单击时添加的行。换句话说,如果表有2行并且我添加了第3行,则表在取消按钮的事件处理程序中显示为有两行。实际上,如果我注释掉整个取消按钮事件处理程序(但仍然让空方法执行),则会删除附加行。

所有的帮助都表示赞赏,提前谢谢。

1 个答案:

答案 0 :(得分:0)

点击此链接:http://www.dotnetbull.com/2013/09/maintain-dynamic-control-events-data-during-postback.html

似乎动态创建的控件(即不在页面标记中的控件)需要一些额外的管道来维护。