0
使用我有一個頁面上定義2個用戶控件:決定用戶在運行時控制
<%@ Register Src="Foo.ascx" TagName="FooControl" TagPrefix="acme" %>
<%@ Register Src="Bar.ascx" TagName="BarControl" TagPrefix="acme" %>
.
.
.
<acme:FooControl ID="myFoo" runat="server" Visible="false" />
<acme:BarControl ID="myBar" runat="server" Visible="false" />
在運行時,我想設置用戶控件的屬性中的一個在頁面的代碼的各個位置。例如:
protected void SomeMethod()
{
if (isSomeCondition)
{
myFoo.Visible = true;
}
else
{
myBar.Visible = true;
}
// ...
if (somethingElse)
{
if (isSomeCondition)
{
myFoo.Prop1 = 123;
}
else
{
myBar.Prop1 = 123;
}
}
// ...
}
我知道我可以從一個通用接口繼承2個用戶控件,但有沒有另一種(可能更好)的方式?
http://codereview.stackexchange.com/ –
而且,不,我還沒有發現沒有更好的方式比使用通用接口。據我記憶,第二個最好的選擇是你正在使用的那個。 –
我想你可以使用反射設置屬性,但我真的不會推薦這麼做。你會失去類型安全。通用界面就是我想要的方式。你不喜歡的解決方案是什麼? –