我在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;
}
}
答案 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
。