Asp.net 从CodeBehind设置UserControl的Enabled属性

Asp.net 从CodeBehind设置UserControl的Enabled属性,asp.net,webforms,c#-3.0,Asp.net,Webforms,C# 3.0,我已经有一段时间没有在WebForms上工作了,所以在旧网站上工作时需要复习 我在页面上有一个userControl,我需要通过编程设置启用状态 <%@ Register Src="CalandarControl.ascx" TagName="CalandarControl" TagPrefix="uc" %> 谢谢您应该在代码前面添加一些东西,将控件放置在页面上,例如: <uc:CalendarControl ID="dtePrepaymentExpiresDate" Fi

我已经有一段时间没有在WebForms上工作了,所以在旧网站上工作时需要复习

我在页面上有一个userControl,我需要通过编程设置启用状态

<%@ Register Src="CalandarControl.ascx" TagName="CalandarControl" TagPrefix="uc" %>

谢谢

您应该在代码前面添加一些东西,将控件放置在页面上,例如:

<uc:CalendarControl ID="dtePrepaymentExpiresDate" FieldName="Prepayment expires date" runat="server" Enabled="false" />
如果确实需要在循环中执行,则需要将
c
转换为
CalendarControl
而不是
UserControl
,因为
CalendarControl
启用了
属性,而普通
UserControl
没有

((CalandarControl)c).Enabled = true;

您可以在usercontrol中定义一个包含用户控件所有控件的面板,然后定义一个名为bool(panelMain.Enabled;)的已启用属性,并从您的页面设置它

用户控制中的ascx

<asp:panel runat="server" id="panelMain" Enabled="false">

<!-- define ur other controls between panel-->

</asp:panel>
在页面中,首先注册ur usercontrol,然后从代码隐藏中设置Enabled属性…
比如说

 protected void Page_load(object sender,EventArgs e )
 {
     panelMain.Enabled = true;
 }

就像饮用水一样简单:)

已启用
属于
用户控制
。你想干什么?另外,在您的代码片段中,您正在使用
c
,但最终将
control
转换为
UserControl
。嘿,Mike,如果用户处于特定角色,我正在尝试将控件设置为启用。目前,他们在aspx页面的控件级别上设置了启用控件的属性。“控件”是以前代码尝试中的类型。事实上,我看到了。。。更新答案。谢谢迈克。我尝试在UserControl之前使用CalandarControl,但它找不到引用。该控件已经具有Enabled属性,但我不知道如何正确拼写CalendarControl。嘟嘟。这是一个很好的回答,再次感谢。或者如果你只是将其设置为一个角色。。。跳过循环和
if
语句,只需执行类似于
dtepropaymentexpiresdate.Enabled=User.IsInRole(“bigAdmin”)是的,我也注意到控件名中的输入错误;)页面上有几个CalendarControl,它们都由相同的角色逻辑绑定,因此我发现尽可能容易地运行泛型。我认为您的目的是将public bool Enabled键入为:get{return panelMain.Enabled;}set{panel.Enabled=value;}
<asp:panel runat="server" id="panelMain" Enabled="false">

<!-- define ur other controls between panel-->

</asp:panel>
public bool Enabled
{
    get { return panelMain.Enabled;  }
    set { panelMain.Enabled = value; }
}
 protected void Page_load(object sender,EventArgs e )
 {
     panelMain.Enabled = true;
 }