我正在使用 XMLHTTPRequest 对象从 javascript 进行一些直接的异步调用。成功后,使用某些返回值,我想在更新面板上进行异步回发并运行一些服务器端方法。这是关于我现在如何实施它:
<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 调用,这将导致更新面板异步回发并运行服务器端方法?