C# ascx控件中的动态表问题

C# ascx控件中的动态表问题,c#,.net,asp.net,ascx,C#,.net,Asp.net,Ascx,我在ascx用户控件中有下表: 我动态创建tblChangeSerNo,并在文本框中预先填充数据库中的当前值。控件的思想是允许用户使用新值更新DB的值。问题是当调用btChangeSerNo\u onClick方法时: 由于我在预渲染时执行此操作,因此未渲染该表 即使我在页面加载时呈现了表,我也无法访问用户的更新值,因为它们丢失了 如何解决此问题?最佳实践方法是使用网格控制 如果您希望坚持使用自己的代码,请执行以下步骤: 将所有文本框存储在全局字段中,例如,public List m_t

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


我动态创建
tblChangeSerNo
,并在文本框中预先填充数据库中的当前值。控件的思想是允许用户使用新值更新DB的值。问题是当调用
btChangeSerNo\u onClick
方法时:

  • 由于我在预渲染时执行此操作,因此未渲染该表
  • 即使我在页面加载时呈现了表,我也无法访问用户的更新值,因为它们丢失了

如何解决此问题?

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

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

  • 将所有文本框存储在全局字段中,例如,
    public List m_tabletextboxs=new List()并在创建时添加到该列表
  • 让代码在
    Page_加载中创建动态控件
    ,但仅在未回发时执行:
    if(!Page.IsPostBack){…}
  • 在按钮单击事件中,从全局字段读取值

  • 以前也做过类似的事情,所以这个概念应该是可行的。

    问题是代码在ascx控件中,因此公共列表m_tableTextBox=new List();即使是交叉回发,每一次都会执行一行:(@woola这不要紧。据我记忆所及,一旦控件添加到页面中,除非显式覆盖,否则它们应该保留在回发上。我可能错了,但肯定值得一试。你能给我们看一下后面的代码吗?