2010-08-27 78 views
0

我使用C#代码在选项卡控件中添加了ascx控件。如果你点击任何标签。 ASCX控制负载。选项卡控件在更新窗格中。阿洛斯ASCX控制包括按钮,如果你点击按钮,你可以添加一些价值的数据库,但ASCX消失。我认为它被重新加载。我如何解决它? 如果我点击标签控件,我加载了ascx控件。我在ASCX上有一个按钮。我点击按钮ASCX即消失..如果点击按钮保存,ASCx为什么会消失?



    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")); 

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控制消失。我该如何解决它!

回答

1

如果你在代码中以编程方式添加控件,每次回来后的操作需要(如在Page_Load中)重新创建相同的控制处理后回事件(在你的情况下,保存按钮)

+0

我重新编号。如何解决它。请帮帮我!!! – Penguen 2010-08-27 10:27:30

+0

在您的代码中,仅在ActiveTabChanged上调用LoadControl()才能添加该控件。但这些信息无法在回传中生存。 – devio 2010-08-27 12:07:27

0

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

+0

我不明白? – Penguen 2010-08-27 08:19:56

+0

看到编辑后 – 2010-08-27 08:58:22

+0

不,我没有.... – Penguen 2010-08-27 10:05:10

相关问题