Я делаю несколько прямых асинхронных вызовов из javascript, используя объект XMLHTTPRequest. В случае успеха, с определенными возвращаемыми значениями, я хотел бы сделать асинхронную запись обратно на панели обновлений и запустить некоторые методы на стороне сервера. Вот как я сейчас это реализую:
<script language="javascript">
function AjaxCallback_Success(objAjax) {
if (objAjax.responseText == "refresh") {
document.getElementById('<%= btnHidden.ClientID %>').click();
}
}
</script>
<asp:UpdatePanel ID="upStatus" runat="server">
<ContentTemplate>
<asp:Button ID="btnHidden" runat="server" style="display: none;" OnClick="SomeMethod" />
<asp:DropDownList ID="ddlStatus" field="Orders_Status" parent="Orders" runat="server">
</asp:DropDownList>
</ContentTemplate>
</asp:UpdatePanel>
Это связано с рабочим процессом. Если во время работы с заказом кто-то выставляет счет, то параметры, доступные в раскрывающемся списке статуса, фактически изменяются. Таким образом, таймер даже проверяет наличие изменений, и если есть изменение, которое обычно не происходит, панель обновлений отправляется обратно, а выпадающий список привязывается к новой таблице данных на основе различных возвращаемых значений из текста ответа ajax. ,
Мой оригинальный код на самом деле намного сложнее, чем этот, но я абстрагировался настолько, чтобы сделать мою концепцию более понятной. Есть ли лучший, более чистый способ сделать это, нажав скрытую кнопку и выполнив прямой вызов javascript, который приведет к асинхронной обратной передаче панели обновления и выполнению метода на стороне сервера?