[英]How to disable a Button in ASP.Net
我在禁用ASP.net中的按钮时遇到了很大的问题。 当我禁用客户端上的按钮时,回发后将启用该按钮。 当我禁用服务器端的按钮时,由于按钮不存在,我无法保存掩码。
我该如何解决? 保存操作在第一个Preload / PostBack上执行。 这意味着第二个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;
}
}
您可以在每次创建按钮时为它分配一个css-class
。
这样做,您可以使用jQuery
执行以下操作
$('.className').attr("disabled", true);
使用javascript
将需要使用document.getElementsByClassName
您可以简单地使用javascript
禁用按钮。
<script type="text/javascript">
function disableBtn()
{
document.getElementById("DivButton").disabled=true
}
</script>
您可以使用属性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
我不确定“我的按钮是在每次预加载后创建的”还是“我无法保存遮罩”的意思。
如果要影响回发时的启用状态,可以执行以下任一操作:
button.Enabled = false;
要么
button.Attributes.Add("disabled", "disabled");
根据您的评论 :
每个Preload都会调用我的addbutton方法(请参阅我的文章)。 每次按下按钮都会有一个预加载
不要将按钮的Pre_Load
放在Pre_Load
中,而Pre_Load
检查IsPostBack
放在Page_Load
。
如果要从.cs
文件中添加按钮,并且不能将按钮放在.aspx
文件中,则可以在Page_Init
事件中添加按钮,如下所示。
protected void Page_Init(Object sender, EventArgs e)
{
AddSaveButton();
}
在Page_Init
添加按钮将使其在每次回发期间保持其State
。
按原样添加保存按钮的方法...
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);
}
现在,您可以从页面的save_event中找到该按钮,并按如下所示禁用它...
protected void save_event(Object sender, EventArgs e)
{
ActionButton b = (ActionButton)this.FindControl("ButtonSave");
b.Enabled = false;
//do your saving stuff here...
}
此后,每次回发将禁用按钮。
编辑:
好吧,如果要从.aspx
添加此按钮,则可以将其直接设置为enabled false,如下所示。
ButtonSave.Enabled = false;
代替
ActionButton b =(ActionButton)this.FindControl(“ ButtonSave”);
b.Enabled =假;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.