自从我使用WebForms以来已经有一段时间了,所以在旧网站上工作时我需要复习。
我在页面上有一个userControl,我需要以编程方式设置启用状态
<%@ Register Src="CalandarControl.ascx" TagName="CalandarControl" TagPrefix="uc" %>
我在C#代码中有这个,但是这里没有Enabled。我错过了什么?
if (c is UserControl)
{
var x = c.GetType();
if (x.Name == "calendarcontrol_ascx")
{
((UserControl)c).Enabled = true;
}
}
由于
答案 0 :(得分:2)
您应该在代码前端放置一些将控件放在页面上的内容,例如:
<uc:CalendarControl ID="dtePrepaymentExpiresDate" FieldName="Prepayment expires date" runat="server" Enabled="false" />
然后在后面的代码中,您可以按如下方式设置此自定义属性:
dtePrepaymentExpiresDate.Enabled = true;
如果您确实需要在循环中执行此操作,则需要将c
转换为CalendarControl
而不是UserControl
,因为CalendarControl
具有属性{{1正常Enabled
没有。
UserControl
答案 1 :(得分:0)
你可以在usercontrol中定义一个面板,用于控制用户控件的所有控件,然后定义一个名为bool(panelMain.Enabled;)的属性,并从你的页面设置它,
在用户控件ascx中
<asp:panel runat="server" id="panelMain" Enabled="false">
<!-- define ur other controls between panel-->
</asp:panel>
在usercontrol ascx.cs
中public bool Enabled
{
get { return ucSample1.Enabled; }
set { ucSample1.Enabled = value; }
}
在页面首先注册你的usercontrol,然后从后面的代码设置Enabled属性.... 例如
protected void Page_load(object sender,EventArgs e )
{
ucSample.Enabled = true;
}
像喝水一样简单:))