ascx控件中的动态表问题

时间:2011-05-17 07:52:20

标签: c# .net asp.net ascx

我在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。控制的想法是允许用户使用新值更新DB的值。问题是当调用btChangeSerNo_onClick方法时:

  • 表格未呈现,因为我是在预渲染
  • 上进行的
  • 即使我在Page_Load上呈现了表格,我也无法访问用户的更新值,因为它们已丢失。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

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

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

  1. 将所有文本框存储在全局字段中,例如public List<TextBox> m_tableTextboxes = new List<TextBox>();以及创建添加到该列表时。
  2. 让代码在Page_Load中创建动态控件,但只有在不是PostBack时执行它:if (!Page.IsPostBack) { ... }
  3. 在按钮点击事件中,阅读全局字段中的值。
  4. 过去做过类似的事情,所以这个概念应该有用。