1

無効化ボタン(C#)について質問があります。あなたの助けが必要です。

Asp.net(C#)で、ボタンコードを無効にします。

    Button btn = new Button();
    btn.click += new EventHandler(btn_click);
    btn.Enabled = false;
    btn.UseSubmitBehavior = false;

生成されたHTML: <input type = "button" disable = "disabled">

firebugを使用し、'disabled'プロパティを削除しtypeプロパティをsubmit<input type = "submit"> )に変更するまで、ボタンは無効になります。その後、ユーザーはbtnをクリックして、btn_clickメソッド(postback)を実行できます。

どうすればこの問題を防ぐことができますか?CommandName(disable、enable)を使用して無効ボタンをマークし、btn_clickメソッド内で、CommandName == "disable"かどうかを確認してから関数を停止しようとしましたが、非常に面倒です。

ご協力いただきありがとうございます。
バン

4

3 に答える 3

4

クライアントはDisabled属性を削除できますが、コントロールのViewStateを変更することはできません。サーバー側では、次のことができます。

protected void btn_Click(object sender, EventArgs e)
{
     if (btn.Enabled)
     {
           // do something         
     }
}

<asp:Button ID="btn" runat="server" Enabled="false" OnClick="btn_Click" Text="Test" />
于 2013-01-03T03:49:56.087 に答える
3

ユーザーの行動を制御することはできません。あなたがする必要があるのは、サーバー側でこれらのことを処理することです。

btn_click ..でボタンのステータスを判断してから、いくつかの作業を行うことができます。

于 2013-01-03T03:39:57.427 に答える
0

@bystanderは正しいです。その条件が正しいかどうかをサーバーで確認する必要があります。クライアントが100%ばかげていると信頼することはできません。それが、まさにその理由です。

代わりにコントロールを非表示にして、将来のポストバックで再度有効にできますか?非表示にしても、実際にはコントロールがクライアントに表示されるわけではありません。

于 2013-01-03T03:50:45.717 に答える