2009-09-22 3 views
0

У меня есть панель обновления и список кнопок, которые ее запускают. Мне нужно каким-то образом узнать, какая кнопка была нажата, когда метод загрузки (вызванный триггерами) отключается, но я не могу понять это. Отправитель не запускается в триггер, а сам панель обновлений.Как я могу решить, какой триггер активировал мою панель обновления?

Мне нужно выполнить какое-либо действие, основанное на нажатии кнопки.

Любые советы?

Я использую 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

+0

Используете ли вы ASP.NET? –

+0

Поскольку это событие щелчка кнопки, которая запускает обновление, вы уже знаете, какая кнопка вызывает событие клика, которое только что было запущено, можете ли вы поместить свой код в события кликов? – Robert

ответ

0

Если вы отладки, вы можете проверить stack trace.

+1

Вам не кажется, что он хочет знать источник триггера во время выполнения (не отлаживать) – Martin

+0

Он не сказал, и я не хотел предполагать. Не стесняйтесь давать альтернативный ответ, если чувствуете, что я что-то пропустил. –

1

Обычно я просто создавал отдельный обработчик события Click для каждой кнопки, а затем записывал конкретный код, который должен запускаться в каждом обработчике событий.

+0

Разве это не приводит к тому, что страница/кнопки отправляется обратно? Я действительно не хочу обновлять страницу, чтобы запустить codebehind – NibblyPig

+0

Нет. Это не вызывает полную обратную передачу, потому что панель обновления зарегистрировала, что события, отправленные этими кнопками, должны генерировать асинхронную обратную передачу – Pete

+0

Примечание. При использовании панели обновления все, что происходит на стороне сервера, такое же, как с обычной обратной записью. Разница заключается в том, как выполняется запрос (asynchrounous) и какие данные возвращаются (только HTML, который входит в UpdatePanel (s) + viewstate). – Pete

Смежные вопросы