имеет небольшую проблему с моей страницей ASP.net. Если пользователь дважды щелкнул по кнопке "отправить", он дважды будет записывать в базу данных (т.е. Дважды выполнить метод "onclick" на изображении)
Как я могу сделать так, чтобы, если пользователь нажимает на кнопку изображения, только кнопка с изображением отключена?
Я пробовал:
<asp:ImageButton
runat="server"
ID="VerifyStepContinue"
ImageUrl=image src
ToolTip="Go"
TabIndex="98"
CausesValidation="true"
OnClick="methodName"
OnClientClick="this.disabled = true;" />
Но это свойство OnClientClick полностью останавливает отправку страницы! Любая помощь?
Извините, да, у меня есть элементы управления валидацией... отсюда и неприятная проблема.
Работая над этим, до этого момента:
Код ASP:
<asp:TextBox ID="hidToken" runat="server" Visible="False" Enabled="False"></asp:TextBox>
...
<asp:ImageButton runat="server" ID="InputStepContinue" Name="InputStepContinue" ImageUrl="imagesrc" ToolTip="Go" TabIndex="98" CausesValidation="true" OnClick="SubmitMethod" OnClientClick="document.getElementById('InputStepContinue').style.visibility='hidden';" />
Код С#:
private Random
random = new Random();
protected void Page_Load(object sender, EventArgs e)
{
//Use a Token to make sure it has only been clicked once.
if (Page.IsPostBack)
{
if (double.Parse(hidToken.Text) == ((double)Session["NextToken"]))
{
InputMethod();
}
else
{
// double click
}
}
double next = random.Next();
hidToken.Text = next + "";
Session["NextToken"] = next;
Собственно... это почти срабатывает. Проблема двойного щелчка в значительной степени исправлена (yay!) Изображение все еще не скрыто.