如何在ASP.Net中禁用Button

时间:2013-09-06 08:33:29

标签: c# javascript asp.net devexpress

我在ASP.net中禁用Button时遇到很大问题。 当我在客户端禁用该按钮时,该按钮在回发后启用。 当我禁用服务器端的按钮时,由于按钮不在,我无法保存掩码。

我该如何解决? 保存操作在第一个Preload / PostBack上执行。 这意味着第二个PostBack和之后的所有内容都不应该执行保存过程。

每次预加载后我的Button都会被创建。我怎样才能给这个Button一个固定的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">

ActionButton:

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

5 个答案:

答案 0 :(得分:2)

每次创建按钮时都可以指定css-class

这样做可以使用jQuery

执行以下操作
 $('.className').attr("disabled", true);

使用javascript需要使用document.getElementsByClassName

答案 1 :(得分:2)

您只需使用javascript即可停用按钮。

  <script type="text/javascript">
    function disableBtn() 
    {
    document.getElementById("DivButton").disabled=true
    }
  </script>

答案 2 :(得分:1)

您可以使用属性ClientIDMode并将其设置为Static来获取已修复的ID。但是,您也可以使用JavaScript访问控件,如下例所示:

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

更多信息:http://www.codeproject.com/Articles/34151/ASP-NET-4-0-Client-ID-Feature

答案 3 :(得分:1)

我不确定你的意思是“我的按钮是在每次预装后创建的”或“我无法保存面具”。

如果您想影响回发的启用状态,您可以执行以下任一操作:

button.Enabled = false;

button.Attributes.Add("disabled", "disabled");

答案 4 :(得分:1)

来自comment

  

我的addbutton mathod(在我的帖子中查找)被每个Preload调用。每次按下按钮都会有一个预加载

请勿将Pre_Load中的按钮设置为Page_Load,并检查IsPostBack