[英]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.