Page.LoadControl()正在清除我的事件

时间:2012-10-09 16:29:58

标签: c# asp.net

以下是添加System.Web.UI.UserControl的方法,该方法动态地向页面显示帮助提示...

public static void AddHelpTip(string helpText, System.Web.UI.ControlCollection collection, System.Web.UI.Page page)
    {
        CWP.controls.HelpTip hTip = (CWP.controls.HelpTip)page.LoadControl("~/_controls/HelpTip.ascx");
        hTip.Text = helpText;
        hTip.StyleVal += " position:fixed;top:9px;left:9px;";
        collection.Add(hTip);
    }

只有在我使用它的任何页面上,我的所有下拉列表都会停止工作,而不是我的按钮。

下拉列表事件在页面生命周期中附加OnLoad,一切正常,直到我使用AddHelpTip方法,有人可以提供实际工作的不同解决方案,和/或解释最新进展错误。

更多代码,如评论请求:

在我的aspx页面中:

void Locations_Load(object sender, EventArgs e)
    {
        extendedInfo.Mode = CWP.Constants.MODE_LOCATION;

        CWP.Util.AddHelpTip("Store details", this.Controls, this.Page);
        ...

更多在aspx页面中:

void Locations_Init(object sender, EventArgs e)
    {
        this.Page.RegisterRequiresControlState(this);

        this.CustomMasterPage.ContentHeader = "Stores";

        this.ddlAccountSelect.SelectedIndexChanged += new EventHandler(ddlAccountSelect_SelectedIndexChanged);
        this.ddlLocationSelect.SelectedIndexChanged += new EventHandler(ddlLocationSelect_SelectedIndexChanged);

        this.btnAccounts.Click += new EventHandler(btnAccounts_Click);
        this.btnTerminals.Click += new EventHandler(btnTerminals_Click);
    }

记住它一直有效,直到我调用我的AddHelpTip()方法,也就是说,如果我注释掉代码一切正常,调用该方法意味着我的下拉列表开始丢失状态,甚至全部下拉列表中的项目将被删除,因为我正在将项目加载到“!this.IsPostBack”内,如果它只执行一次,但AddHelpTip甚至会清除项目并且事件不会触发< / p>

和我的构造函数:

public Locations()
    {
        this.Init += new EventHandler(Locations_Init);
        this.Load += new EventHandler(Locations_Load);
        this._isSecure = true;
    }  

0 个答案:

没有答案