我的asp.net页面上有多个按钮,我需要在页面加载时禁用某些按钮。 将禁用哪个按钮由我成功检索的数据库确定。
例如,我已经检索了ID" B01",并且在我的页面中有一个名为" B01"的按钮&ID; 我必须在页面加载时禁用此按钮,我该怎么办?
答案 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
答案 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的按钮