簡體   English   中英

Asp.NET用戶控件回發問題

[英]Asp.NET User Control Postback Issue

我有一個aspx頁面,上面有一個Tab控件,一些按鈕和一個用戶控件。

<dx:TabPage Text="Worker Information" Name="tabWorker">
    <ContentCollection>
        <dx:ContentControl runat="server" SupportsDisabledAttribute="True">
            <uc:WorkerInfo runat="server" OnWorkerLoaded="On_Worker_Loaded" OnWorkerUnloaded="On_Worker_Unloaded" />
        </dx:ContentControl>
    </ContentCollection>
</dx:TabPage>

用戶控件上有2個自定義事件

public event EventHandler WorkerLoaded;
public event EventHandler WorkerUnloaded;

我在aspx主頁上有事件處理程序

protected void On_Worker_Loaded(object sender, EventArgs e)
{
    btnNext.Enabled = true;
}

protected void On_Worker_Unloaded(object sender, EventArgs e)
{
    btnNext.Enabled = false;
}

觸發On_Worker_Loaded事件沒有問題。 我可以調試並觀察按鈕變為啟用狀態。 我的問題是,在屏幕加載時,按鈕仍處於禁用狀態。 在我的aspx頁面中,我禁用了按鈕:

<dx:ASPxButton ID="btnNext" runat="server" Text="Next" Theme="MetropolisBlue" 
                onclick="btnNext_Click" Enabled="false"></dx:ASPxButton>

在此處輸入圖片說明 “下一步”按鈕已被禁用。 這就是為什么您看不到它的原因。 我已經用黑色輪廓框住了。 當我單擊該“確定”按鈕時,將觸發WorkerLoaded事件。

唯一的其他禁用是在On_Worker_Unloaded事件處理程序上。 我還沒有連接。 沒有其他原因導致按鈕禁用。 有什么想法我想念的嗎?

謝謝!

UPDATE

用戶控件中有一個UpdatePanel。 我不知道這有什么不同,但我想我會包括在內。 我注意到發生了一些奇怪的事情。 啟用按鈕后,我注意到如果執行回發,則將啟用該按鈕。 這會給任何人敲響鍾聲嗎?

似乎在設置Enabled = false屬性之前就調用了已加載的事件。

在調試器中,檢查調用事件時Enabled屬性是否已經為false。

另外,什么觸發了WorkerLoaded事件?

最后,我找到了適合我的解決方案。 我將“下一個”按鈕和“上一個”按鈕放在自己的“更新面板”中。 完成此操作后,一切正常。 感謝您的所有想法和幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM