簡體   English   中英

ASP.NET Click事件不適用於在選項卡按鈕控件中創建的多按鈕

[英]ASP.NET Click event does not work for multi buttons what created in tab button control

我是ASP.NET的新手,但是有問題。

在我的代碼中,btn.Click事件不適用於在選項卡按鈕控件中創建的多按鈕。 你們能建議我嗎? 謝謝,

<asp:Button Text="TAB MENU" BorderStyle="None" ID="Tab" CssClass="Initial" runat="server" OnClick="Tab_Click" />

<asp:Panel ID="panel1" runat="server" Direction="LeftToRight" HorizontalAlign="Left"></asp:Panel>




protected void Tab_Click(object sender, EventArgs e) {

     foreach (...) {

            Button btn = new Button();                        
            btn.Click += Button1_Click;
            panel1.Controls.Add(btn);
            }
}

protected void Button1_Click(object sender, EventArgs e) {
            **some code here! but does not work.**
}

嘗試這個

Button btn = new Button(); 
btn.Click  += new RoutedEventHandler(Button1_Click);
panel1.Controls.Add(btn);

您的問題可能與以下事實有關:在觸發Button1_Click回調時,按鈕不存在... Asp.net Webforms是基於HTTP的某種泄漏抽象,因此有時很難解密,但是我希望發生的事情是,當發生按鈕單擊的回發時,該按鈕實際上並不存在於控件樹中,因為僅當單擊選項卡控件時,該按鈕才會添加到控件樹中。 因此,由於該按鈕在回發中不存在,因此Webforms不知道如何處理該事件,因此它將忽略該事件...

如果必須動態創建按鈕,請考慮使它們使用一些javascript來編輯某些隱藏的字段或某些內容,您可以在Page_Load方法中檢查其值,然后使用該值做任何在功能上有意義的事情。

如果它們不是動態的,而是每個頁面加載都相同(但每個選項卡都不同)(即,加載頁面時,您正在從數據庫中繪制一些信息來確定要顯示的按鈕,但這會(不要在同一頁的回發之間更改),然后考慮在Page_Load事件中創建按鈕,而不是在創建選項卡時引發的事件內部創建按鈕。

另外,由於在您的評論中您建議使用按鈕來打開一個新窗口,為什么不僅僅讓按鈕在客戶端運行,即使用javascript window.open命令。 然后,您甚至根本不需要發回服務器...

暫無
暫無

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

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