使用特定ID禁用页面加载时的按钮

时间:2014-03-22 04:08:04

标签: c# asp.net

我的asp.net页面上有多个按钮,我需要在页面加载时禁用某些按钮。 将禁用哪个按钮由我成功检索的数据库确定。

例如,我已经检索了ID" B01",并且在我的页面中有一个名为" B01"的按钮&ID; 我必须在页面加载时禁用此按钮,我该怎么办?

4 个答案:

答案 0 :(得分:1)

在页面加载时执行 - if(!IsPostBack){id.Enabled = false;}并确保按钮必须与<asp:Button ID="btn_dn" runat="server" >Button</asp:Button>按钮需要runat="server"一样
当你使用简单的按钮,所以它不会采取任何c#命令,所以你必须使用asp按钮或JavaScript来禁用按钮

简单按钮<input type="button" disabled="disabled" value="B01" />
<button id="B01" runat="server" disabled="disabled">B01</button>

答案 1 :(得分:0)

您可以在Page_Load事件

中执行此操作
string id="B01";
(FindControl(id) as Button).Enabled = false;

答案 2 :(得分:0)

FindControl存在挑战,并且&#34;嵌套&#34;控制。我相信你需要一个递归的查找控制功能,看一下教程。

public static Control FindControlRecursive(Control Root, string Id)
{



  if (Root.ID == Id)
        return Root;


foreach (Control Ctl in Root.Controls)
{
    Control FoundCtl = FindControlRecursive(Ctl, Id);
    if (FoundCtl != null)
        return FoundCtl;
}

return null;
}

然后使用

调用它
var x = FindControlRecursive(this.Master,"ButtonName") as Button;      
x.Visible = false or x.Enabled = false

Tutorial Link is here....

答案 3 :(得分:0)

页面加载

string id = "A01";

var q = from R in db.Reservations
                    where R.Flight_NO == id
                    select R.Seat;


        foreach (var item in q)
        {
            Button b = (Button)this.Master.FindControl("main").FindControl(item);
            if (b!=null)
            {
                b.Enabled = false;
            }
        } 

这会在页面加载时自动禁用具有该特定ID的按钮