我为我的用户控件创建了自定义属性。
我的用户控件:
<asp:PlaceHolder ID="BtnPlaceHolder" runat="server">
<asp:Button ID="Button1" runat="server" Text="Button1" PostBackUrl="~/Page1.aspx"/>
<asp:Button ID="Button2" runat="server" Text="Button2" PostBackUrl="~/Page2.aspx" />
</asp:PlaceHolder>
属性:
public bool ShouldBeVisible
{
get
{
return Button1.Visible;
}
set
{
Button1.Visible = value;
}
}
在Page_Load:
protected void Page_Load(object sender, EventArgs e)
{
Button1.Visible = ShouldBeVisible;
}
在使用UC的page1.aspx中:
<uc:MyUserControl runat="server" />
如果我想在另一个按钮(例如Button2)上使用该属性,我该如何重新使用ShouldBeVisible属性?
编辑:抱歉,但我想在Buttons上使用ShouldBeVisible属性,而不是UC声明。取决于我想要显示Button1或Button2的页面(页面或第2页)。
答案 0 :(得分:1)
您可以通过这种方式创建UserControl
的属性,以便它不仅可以用于Button1
的多个控件。这是一种方法
private bool _shouldBeVisible = false;
public bool ShouldBeVisible
{
get
{
return _shouldBeVisible;
}
set
{
_shouldBeVisible = value;
}
}
然后你可以在UC的Page_Load
上写下这样的内容。
protected void Page_Load(object sender, EventArgs e)
{
Button1.Visible = Button2.Visible = ShouldBeVisible;
}
答案 1 :(得分:0)
无需引入其他财产:
<uc:MyUserControl Visible="<%# Button1.Visible %>" />