DBにデータを保存するボタンのあるリピーターがあります。私の問題は、DBへの呼び出しに少し時間がかかり、ユーザーが[保存]を数回クリックして、複数のエントリがDBに追加される場合があることです。したがって、私の最初の考えは、スロバーを追加し、ボタンがクリックされたときにボタンを無効にすることでした。スロバーは回転しますが、ボタンが無効になっていると、サーバーへの呼び出しができなくなります。だから私はこれを見ましたが、私はたくさんの異なるボタン(更新、追加、...)を持っているので、いくつかの異なるサーバー側のメソッドが呼び出されているので、投稿することはできません__doPostBack($(button).attr('id'),'')
。だから私はajax呼び出しをする必要があるかもしれないと思っていましたが、他に何かアイデアがあるかどうかを確認したかったのです。これが私のコードです:これonClientClick
は実際にはサーバー側でセットアップされていますが、これは基本的に行われていることです。
リピーター:
<div style="position: relative; float: left;">
<asp:Button ID="btnSave" runat="server" Text="Assign" OnClientClick="return fnAssignedButtonPressed(this);", OnClick="btnSave_Click" />
</div>
Javscript:
function fnAssignedButtonPressed(button) {
//validating inputs
var valid = true;
if(valid)
{
$(button).attr('disabled', 'disabled');
showWaitCursor(true);
__doPostBack($(button).attr('id'),'');
}
return valid;
}
サーバーサイド:
protected void btnSave_Click(object sender, EventArgs e)
{
//save
// This method doesn't call called when I disable the button!!
}