首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >重新加载动态创建的ASP.Net控件的视图状态时出现问题

重新加载动态创建的ASP.Net控件的视图状态时出现问题
EN

Stack Overflow用户
提问于 2009-10-09 14:52:15
回答 2查看 2.5K关注 0票数 0

我在ASP.Net页面上有一个ajax工具包选项卡容器,并且在后台代码中动态创建选项卡(在运行时,我有不同数量的选项卡,每个选项卡具有相同的布局,但具有不同的标题文本和正文数据)。每个选项卡只包含一个控件,这是我为使所有选项卡看起来都相同而构建的用户控件。用户控件中是我构建的另一个用户控件,用于处理选项卡中数据的分页。该分页用户控件有一个受其ViewState支持的属性。

我在ASPX页面上的一个BindData函数中绑定了选项卡的所有数据。在该函数中,我总是为动态创建的控件设置ID,并在设置任何其他属性、连接事件或将数据绑定到它们之前将它们添加到它们的容器控件中。

在这种情况下,我在分页用户控件中丢失了ViewState变量的值:

ASPX主页

代码语言:javascript
复制
Page_Init:

    If IsPostBack Then
        BindData     ' Recreates the control tree on postback.
        ' ViewState is loaded successfully here.
    End If

Page_Load:

    If Not IsPostBack Then
        BindData()   ' Bind the initial data.
    End If

[Some event that happens after Page_Load in response to clicking on my user control]:

    ...
    BindData()    ' Controls recreated with changed data but same IDs as in Page_Init.
    ' ViewState does not get loaded back into my control tree.

我不应该期望在页面生命周期中的第二个版本的控件树上再次加载ViewState吗?

EN

Stack Overflow用户

回答已采纳

发布于 2009-10-09 19:56:04

经过多次阅读,似乎在初始化阶段之后创建的任何动态控件都不会加载ViewState。就我的情况而言,在我的BindData函数中,我获取局部变量的ViewState值,重新创建控件,然后重置ViewState值。这似乎是可行的。

票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1544305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档