gpt4 book ai didi

asp.net - 如何在页面初始化期间访问以编程方式添加的用户控件的 View 状态?

转载 作者:行者123 更新时间:2023-12-02 18:55:53 24 4
gpt4 key购买 nike

我在页面上有一组以编程方式添加的用户控件(它们是在主页的 Init 事件期间创建和添加的)。这些控件中的每一个都在其自己的 Init 事件期间以编程方式添加按钮。
(所以这是动态创建的控件的“两个级别”。不知道这是否重要。)

但是我需要在创建这些按钮时访问 View 状态(我使用 View 状态来记住用户数据)。

protected void Page_Init(object sender, EventArgs e)
{
// I need my ViewState right now !
Button myButton = new Button();
myButton.Text = "Click me";
myButton.Command += new CommandEventHandler(myCommandHandler);
myButton.CommandName = "Delete";
myButton.ID = "myButtonID";
myPlaceholder.Controls.Add(myButton);
}

我了解到 View 状态在 In​​it 事件期间不可用。但如果按钮是在 Init 之后创建的,则不会触发其事件(OnClick 等)。

  • 如何创建动态控件同时访问 View 状态?

最佳答案

我认为你做不到。不太理想,但在这种情况下我会将用户数据放入 Session 中。动态控件很难使用,我认为这是权衡之一。 ViewState 在 Page_Init 之后加载 - 此 forum post确认

另一个选择可能是将信息存储在您自己的隐藏字段中。这些将在回发期间在 Request.Form 集合中变得可用,并且将可用。当然,如果你让它们 runat="server" (你可能必须这样做),框架会将所有命名容器 id 附加到名称中,所以你在挖掘它们时必须有点聪明出去。不过这会有点麻烦,所以我很想坚持这个 session

其他人当然可能知道不同的内容。

关于asp.net - 如何在页面初始化期间访问以编程方式添加的用户控件的 View 状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9132595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com