два события сработали одновременно в ASP.NET - PullRequest
1 голос
/ 21 марта 2011

В моей веб-форме ASP.NET есть панель обновления с триггером, который будет запускать событие щелчка при обновлении содержимого панели обновления (это сетка с полями). Событие, которое вызывается, когда затем принимают внесенные пользователем изменения и выполняют некоторые вычисления, а затем обновляют другую панель обновления с этой информацией. Это все прекрасно, когда пользователь нажимает на кнопку вдоль формы и упорядоченно заполняет форму, прежде чем нажимать какие-либо кнопки на странице.

Если пользователь случайно нажал другую кнопку на странице во время изменения содержимого в моей сетке на панели обновлений, например, пользователь вводит значение в элемент управления представлением моей сетки, без вкладок пользователь нажимает кнопку сохранения.

Логически я считаю, что триггер должен сначала инициировать событие щелчка (событие A), а затем событие кнопки сохранения (событие B). Но последовательно я не видел, чтобы событие A срабатывало правильно, в то время как событие B срабатывает постоянно ...

есть мысли по этому поводу?

есть ли способ, чтобы событие A всегда срабатывало до события B? также, если событие A обновит другую панель обновления без страницы, событие B сработает после завершения обновления?

спасибо.

1 Ответ

1 голос
/ 22 марта 2011

Вы можете попытаться заблокировать форму из сообщения 2 раза, прежде чем получит обновление.Вот пример

var prm = Sys.WebForms.PageRequestManager.getInstance();    
prm.add_initializeRequest(InitializeRequest);
prm.add_endRequest(EndRequest);
var fAlloToSubmit = true;

function AllowFormToRun()
{
if(!fAlloToSubmit)
    alert("Please wait for the page to fully re-loaded.");

return fAlloToSubmit;
}

function InitializeRequest(sender, args) {      
   fAlloToSubmit = false;
}

function EndRequest(sender, args) {
   fAlloToSubmit = true;
}

и в коде добавьте onsubmit.

protected void Page_Load(object sender, EventArgs e)
{
        if (string.IsNullOrEmpty(Page.Form.Attributes["onsubmit"]))
        {
            Page.Form.Attributes["onsubmit"] = "return AllowFormToRun();";
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...