我有一个带有按钮的中继器,可以将一些数据保存到数据库中。我的问题是有时调用数据库需要一点时间,用户有时会单击保存几次,导致将多个条目添加到数据库中。所以我的第一个想法是添加一个 throbber 并在单击时禁用该按钮。悸动者正在旋转,但当按钮被禁用时,它会阻止对服务器的调用。所以我看了看这个,但由于我有一堆不同的按钮(更新,添加,...),所以有几个不同的服务器端方法被调用,所以我不能只发布__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>
Javascript:
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!!
}