我有一箇中繼器,其中有一個按鈕用於保存一些數據到數據庫。我的問題是有時調用數據庫需要一點時間,用戶有時會點擊保存幾次,導致多個條目被添加到數據庫。所以我的第一個想法是添加一個throbber,並在點擊時禁用按鈕。跳動者正在旋轉,但是當按鈕被禁用時,它阻止了對服務器的呼叫。所以我看着this,但由於我有一堆不同的按鈕(更新,添加,...),有幾個不同的服務器端方法被調用,所以我不能只發布__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;
}
Serverside集團:
protected void btnSave_Click(object sender, EventArgs e)
{
//save
// This method doesn't call called when I disable the button!!
}