【问题标题】:How do I properly handle the viewstate of a child control within a composite control?如何正确处理复合控件中子控件的视图状态?
【发布时间】:2008-10-06 20:04:47
【问题描述】:

我有一个包含 ListBox 子控件的复合控件。在回发时,ListBox 的项目消失。我有一个用于初始化它的 ListBox 的属性,并将它添加到 CreateChildControls 中的控件集合中。难道我做错了什么?我是否需要做其他事情才能正确处理此 ListBox 的视图状态?

【问题讨论】:

    标签: asp.net viewstate composite-controls


    【解决方案1】:

    确保在添加列表项或数据绑定之前将控件添加到父级。否则,您的复合控件将不会跟踪 ListBox 列表项的视图状态。

    这里有更详尽的解释:http://scottonwriting.net/sowblog/posts/2129.aspx

    【讨论】:

    • 我不是数据绑定。我只是在初始页面加载期间将一些项目添加到列表框中。
    • 在将 ListBox 添加到父级之前还是之后添加项目?确保它在之后。如果您正在加载,请务必在添加项目之前调用 EnsureChildControls()。这保证 CreateChildControls() 已经运行。
    • 如果我在包含复合控件的页面中添加项目,我如何确定 createchildcontrols 已经发生?
    • 可以通过公共函数设置它们并在里面调用 EnsureChildControls()。
    • 没有进行数据绑定,但这基本上是问题所在。我标记为已回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多