12
我开发了一个ASP.NET控件,其中一个属性是[标志]枚举。但是,我似乎无法在ASP.NET控件标记中为此属性指定多个标志。是否有特殊的语法来做到这一点,或者它是不可能的?ASP.NET控件属性与[标志]枚举
我开发了一个ASP.NET控件,其中一个属性是[标志]枚举。但是,我似乎无法在ASP.NET控件标记中为此属性指定多个标志。是否有特殊的语法来做到这一点,或者它是不可能的?ASP.NET控件属性与[标志]枚举
也许我理解错的问题,但你不能使用逗号分隔的字符串设置枚举值。
E.g.如果我在我的控制这个属性:
public System.IO.FileOptions Options { get; set; }
的我可以将其设置在类似这样的标记:
<uc1:MyControl ID="control1" runat="server"
Options="DeleteOnClose,Asynchronous" />
只用逗号分隔旗帜。
Test.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Test.ascx.cs" Inherits="Test" %>
<asp:Label ID="lblTest" runat="server"></asp:Label>
Test.ascx.cs
public partial class Test : System.Web.UI.UserControl
{
public TestEnum MyProperty
{
//coalesce was done to be lazy. sorry. haha.
get { return (TestEnum)(ViewState["te"] ?? TestEnum.One); }
set { ViewState["te"] = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
lblTest.Text = MyProperty.ToString();
}
}
[Flags]
public enum TestEnum : int
{
One = 1,
Two = 2,
Four = 4,
Eight = 8
}
Test.aspx的
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Test.aspx.cs" Inherits="Test" %>
<%@ Register Src="~/Test.ascx" TagPrefix="test" TagName="Test" %>
<form id="form1" runat="server">
<test:Test ID="test" runat="server" MyProperty="Four,Eight" />
</form>