0

ASP.net でボタンを無効にする際に大きな問題があります。クライアント側でボタンを無効にすると、ポストバック後にボタンが有効になります。サーバー側でボタンを無効にすると、ボタンが離れているためマスクを保存できません。

どうすれば修正できますか?保存アクションは、最初の Preload/PostBack で実行されます。つまり、2 回目の PostBack 以降は保存プロセスを実行しないでください。

また、ボタンはプリロードごとに新しく作成されます。このボタンに固定 ID を与えるにはどうすればよいですか。これにより、上書きしているオブジェクトとアクセスできるオブジェクトが常に同じになります。

.cs:

    private void AddSaveButton()
    {
        ActionButton b = new ActionButton(GetString(6025));
        b.ID = "ButtonSave";
        b.ClientInstanceName = "ButtonSave";
        b.UseSubmitBehavior = true;
        b.Click += new EventHandler(save_event);
        DivButton.Controls.Add(b);
    }

aspx:

 <div runat="server" id="DivButton" style="margin-top: 10px; padding-bottom: 15px; float: left">

アクションボタン:

public class ActionButton : DevExpress.Web.ASPxEditors.ASPxButton
{
    public ActionButton(string text)
    {
        this.Text = text;
        this.CssClass = "actionButton";
        this.CssPostfix = "actionButton";
        this.AllowFocus = false;
        this.UseSubmitBehavior = false;
        this.CausesValidation = true;
    }
}
4

6 に答える 6

2

css-classボタンを作成するたびに を割り当てることができます。

それを行うと、次のようなことができますjQuery

 $('.className').attr("disabled", true);

使用するにはdocument.getElementsByClassNamejavascriptを使用する必要があります

于 2013-09-06T08:38:22.820 に答える
1

プロパティを使用してClientIDModeに設定すると、固定 ID を取得できますStatic。また、以下の例のように、JavaScript を使用してコントロールにアクセスすることもできます。

<script type="text/javascript">
  function DoSomething() {
    alert('<%= Control.ClientID %>');
  }
</script>

詳細: http://www.codeproject.com/Articles/34151/ASP-NET-4-0-Client-ID-Feature

于 2013-09-06T08:41:44.553 に答える
1

「プリロードごとにボタンが作成される」または「マスクを保存できない」の意味がわかりません。

ポストバックで有効なステータスに影響を与えたい場合は、次のいずれかを実行できます。

button.Enabled = false;

また

button.Attributes.Add("disabled", "disabled");
于 2013-09-06T08:53:53.513 に答える
1

あなたのコメントから:

私のaddbuttonメソッド(私の投稿を見てください)は、すべてのプリロードによって呼び出されます。そして、ボタンが押されるたびに、プリロードがあります

にチェックをPre_Load入れて入れるにボタンの作成を入れないでください。Page_LoadIsPostBack

于 2013-09-06T09:06:20.597 に答える