私のASP.netページにわずかな問題があります。ユーザーが「送信」ボタンをダブルクリックすると、データベースに 2 回書き込みます (つまり、imagebutton で「onclick」メソッドを 2 回実行します)。
ユーザーがイメージボタンをクリックすると、イメージボタンだけが無効になるようにするにはどうすればよいですか?
私はもう試した:
<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';" />
C# コード:
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;
実際...これはほとんど機能します。ダブルクリックの問題はほとんど修正されました (やった!) 画像はまだ非表示になっていません。