2009-09-22 78 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