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;
}
}