У меня есть ретранслятор с кнопкой, которая сохраняет некоторые данные в БД. Моя проблема в том, что когда-то вызов к БД занимает немного, и пользователь иногда щелкает, чтобы сохранить несколько раз, вызывая добавление нескольких записей в db. Поэтому моя первая мысль заключалась в том, чтобы добавить дробовик и отключить кнопку при ее нажатии. Тромбон вращается, но когда кнопка отключена, он предотвращает вызов на сервер. Поэтому я посмотрел на this, но так как у меня есть куча разных кнопок (Update, Add, ...), которые вызывают несколько разных методов на стороне сервера, поэтому я не могу просто отправить __doPostBack($(button).attr('id'),'')
. Так что я думал, что мне может понадобиться вызов ajax, но я хотел посмотреть, есть ли какие-то другие идеи. Вот мой код: onClientClick
на самом деле настраивается на стороне сервера, но это в основном то, что делается.Отключение кнопки предотвращает событие нажатия на сервер
Repeater:
<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!!
}