ascx控件中动态表的问题

发布于 2024-11-07 20:46:05 字数 719 浏览 1 评论 0原文

我在 ascx 用户控件中有下表:

<tr runat="server" id="rowChangeSerNo">
        <td colspan="2">
            <table id="tblChangeSerNo" runat="server">
            </table>
        </td>
</tr>
<tr id="row" runat="server">
    <td>
        <asp:Button ID="btChangeSerNo" runat="server" Text="Update" OnClick="btChangeSerNo_onClick" />
    </td>
 </tr>

我使用预先填充了数据库中当前值的文本框动态创建 tblChangeSerNo。该控件的想法是允许用户用新值更新数据库的值。问题是,当调用 btChangeSerNo_onClick 方法时:

  • 该表未呈现,因为我在预呈现时执行此操作
  • 即使我在 Page_Load 上呈现该表,我也无法访问用户的更新值,因为他们迷路了。

我该如何解决这个问题?

I have the following table in an ascx user controll:

<tr runat="server" id="rowChangeSerNo">
        <td colspan="2">
            <table id="tblChangeSerNo" runat="server">
            </table>
        </td>
</tr>
<tr id="row" runat="server">
    <td>
        <asp:Button ID="btChangeSerNo" runat="server" Text="Update" OnClick="btChangeSerNo_onClick" />
    </td>
 </tr>

I create the tblChangeSerNo dynamically with text boxes prefilled with the current values in the db. The idea of the control is to allow the user to update the values of the DB with new values. The problem is that when the btChangeSerNo_onClick method is called:

  • The table is not rendered, since I do it on pre-render
  • Even if I rendered the table on Page_Load I could not access updated values of the user because they are lost.

How can I solve this problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

秋意浓 2024-11-14 20:46:05

最佳实践方法是使用网格控件。

如果您希望坚持使用自己的代码,请按照下列步骤操作:

  1. 将所有文本框存储在全局字段中,例如 public Listm_tableTextboxes = new List(); 并在创建时添加到该列表。
  2. 让代码在 Page_Load 中创建动态控件,但仅在不是 PostBack 时才执行: if (!Page.IsPostBack) { ... }
  3. 在按钮单击事件中,读取全局字段中的值。

过去做过类似的事情,所以这个概念应该有效。

The best practice way will be to use Grid control instead.

If you prefer to stick with your own code, follow those steps:

  1. Store all the text boxes in global fields, e.g. public List<TextBox> m_tableTextboxes = new List<TextBox>(); and when creating add to that list.
  2. Have the code creating the dynamic controls in the Page_Load but execute it only when not is PostBack: if (!Page.IsPostBack) { ... }
  3. In the button click event, read the values from your global field.

Done something similar in the past, so the concept should work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文