重新创建子控件和ViewState



让我们用一个简单的例子来解释这个问题:

让CC成为复合控件。

CC在viewState中存储了一个名为filter(字符串)的变量。

CC有2个静态子控件:

  • searchBox:文本框
  • searchButton:按钮

用户键入一个搜索词并单击searchButton。

发生以下步骤:

  • PageLoad

  • CreateChildControls:

    • 创建静态子控件
    • 使用筛选器请求数据库
    • 创建包含结果的表,并在每行插入一个editButton(Button)和绑定处理程序到editButtons单击事件
    • 在childControls层次结构中插入表
  • 点击事件被触发

searchButton_click处理程序执行以下操作:

  • 更新过滤器
  • 重新创建子控件 这就是我被卡住的地方

我需要重新创建子控件层次结构,同时还要维护子控件的视图状态!否则,我的editButtons的Click事件将不会被触发。

有办法做到这一点吗?我一直在寻找,但找不到任何解决方案。我很乐意得到你们的帮助。

希望你理解我的问题,如果需要的话可以提问/代码说明。

向致以最良好的问候

快速

好的,我找到了一个解决方案:

诀窍是给每个editButton一个ID(string.format("editButton_{0}",i)。

如果你有更好的解决方案,请告诉我。

最新更新