更新パネルが起動すると、クライアント側の「フック」が表示されます。これは、更新パネルが更新されている間に、少なくとも一時的にテキストボックスを無効にすることができることを意味します。
次のASP.NET/JavaScriptのスニペットでは、更新パネルを傍受してテキストボックスを表示して無効にする方法を示しています。
<form id="form1" runat="server">
<asp:ScriptManager runat="server"></asp:ScriptManager>
<div>
<asp:UpdatePanel runat="server" ID="updatePane1">
<ContentTemplate>
<asp:TextBox runat="server" ID="textBox1" AutoPostBack="true" OnTextChanged="textBox_TextChanged" />
</ContentTemplate>
</asp:UpdatePanel>
<br />
<asp:UpdatePanel runat="server" ID="updatePane2">
<ContentTemplate>
<asp:TextBox runat="server" ID="textBox2" AutoPostBack="true" OnTextChanged="textBox_TextChanged" />
</ContentTemplate>
</asp:UpdatePanel>
<br />
</div>
</form>
<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(InitializeRequest);
function InitializeRequest(sender, args) {
if (args._postBackElement.id == 'textBox1' || args._postBackElement.id == 'textBox2') {
document.getElementById('textBox1').disabled = true;
document.getElementById('textBox2').disabled = true;
}
}
</script>
私は、あなたが、もともとのために尋ねた(「UpdatePanelのでポストバックをキューにする方法がある」)、これは正確ではないですけど、正味の効果はありません、それはそう彼らの要求をキューするようにユーザーを強制的ということです一度に2つ以上が処理されています。あなたはおそらくもっとエレガントなものにこれを修正することもできます。
これは私がやったことです。更新パネルは一括処理(大量のHTMLを表示するか、一度に大きなフォームを送信するなど)には問題ありません。それはサーバーへの小さな、迅速なポストバックを吸う。 – Sumrak