0

我使用 C# 代码在选项卡控件中添加了 ascx 控件。如果您单击任何选项卡。ASCX 控制负载。更新窗格中的选项卡控件。Alos ASCX 控件包括按钮,如果您单击按钮可以向数据库添加一些值,但 ASCX 会消失。我认为它已重新加载。我该如何解决?如果我单击选项卡控件,我会加载 ascx 控件。我在 ASCX 上有一个按钮。我点击按钮 ASCX disapper ..

 

    protected void ASPxPageControl1_ActiveTabChanged(object source, 
        DevExpress.Web.ASPxTabControl.TabControlEventArgs e)
    {

        if (ASPxPageControl1.ActiveTabPage.Name == "Ali Sp. Reqs")
                PhAliSpReqs.Controls.Add(UserControlHelper.LoadControl(this.Page, "~/EngWebUserControl/AliSpReqs.ascx"));
        else if (ASPxPageControl1.ActiveTabPage.Name == "Test")
                PhTest.Controls.Add(UserControlHelper.LoadControl(this.Page, "~/EngWebUserControl/Test.ascx"));

澳交所:

public partial class Test : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    public void Button1_Click(object sender, EventArgs e)
    {
        if (txtTest.Text != String.Empty)
        {
            Label1.Text = "Hello!";
        }
        else
            Label1.Text = "Error";
    }
}

如果我点击标签,一切都很好。但是单击 ascx 上的按钮。ASCx 控制消失。我该怎么解决!!!

4

2 回答 2

1

如果您在代码中以编程方式添加控件,则每个回发操作都需要重新创建相同的控件(例如在 Page_Load 期间)以处理回发事件(在您的情况下,保存按钮)

于 2010-08-27T09:19:52.453 回答
0

动态添加的控件在代码隐藏类中没有对象引用变量。它们只出现在包含控件的控件集合中,即 Page.Controls 集合。当由于用户交互而将页面回发到服务器时,将实例化代码隐藏类的新实例,并且使用 ViewState 中的值设置该类的所有变量。看这里

于 2010-08-27T08:12:08.807 回答