2009-09-22 124 views
0

我有一個更新面板和觸發它的按鈕列表。我需要一些方法來找出當load方法(這是由觸發器引起的)熄滅時按下哪個按鈕,但我無法弄清楚。發件人不會投入觸發器,而是更新面板本身。如何計算出哪個觸發器觸發了我的更新面板?

我需要根據按下哪個按鈕來執行一些操作。

有什麼建議嗎?

我使用ASP.NET/C#

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" OnLoad="LocationList_Load"> 

<Triggers> 
    <asp:AsyncPostBackTrigger ControlID="btnLocMiddleEast" /> 
    <asp:AsyncPostBackTrigger ControlID="btnLocUSA" /> 
    <asp:AsyncPostBackTrigger ControlID="btnLocNewZealand" /> 
    <asp:AsyncPostBackTrigger ControlID="btnLocAustralia" /> 
    <asp:AsyncPostBackTrigger ControlID="btnLocEurope" /> 
    <asp:AsyncPostBackTrigger ControlID="btnLocRepublicOfIreland" /> 
    <asp:AsyncPostBackTrigger ControlID="btnLocNorthernIreland" /> 
    <asp:AsyncPostBackTrigger ControlID="btnLocWales" /> 
    <asp:AsyncPostBackTrigger ControlID="btnLocScotland" /> 
+0

哪種語言以及它們如何觸發更新面板 – Mark 2009-09-22 10:53:40

+0

您使用的是ASP.NET嗎? – 2009-09-22 10:53:42

+0

由於觸發更新的按鈕的點擊事件,您已經知道哪個按鈕會導致觸發點擊事件,您可以將代碼放入點擊事件嗎? – Robert 2009-09-22 11:01:16

回答

0

如果你正在調試,您可以檢查stack trace

+1

你不覺得他想在運行時知道觸發器的來源嗎(不是調試) – Martin 2009-09-22 10:56:39

+0

他沒有說,我也不想假設。如果您覺得我錯過了任何東西,請隨時提供替代答案。 – 2009-09-22 15:02:34

1

通常我會爲每個按鈕創建一個單獨的Click事件處理程序,然後編寫應在每個事件處理程序中觸發的特定代碼。

+0

這不會導致頁面/按鈕回發嗎?我真的不想刷新頁面,以便運行代碼隱藏 – NibblyPig 2009-09-22 11:06:48

+0

不會。因爲更新面板已註冊由這些按鈕發送的事件應該生成異步回發 – Pete 2009-09-22 11:21:10

+0

注意事項,因此不會觸發完整的回發。當使用更新面板時,服務器端發生的所有事情與正常形式回發相同。區別在於請求是如何產生的(異步)以及返回的數據(只有進入UpdatePanel(s)+ viewstate的HTML)。 – Pete 2009-09-22 11:23:39