2009-12-01 25 views
12

He desarrollado un control ASP.NET para el cual una de las propiedades es una [Flags] enum. Sin embargo, parece que no puedo especificar varios indicadores para esta propiedad en el marcado de control de ASP.NET. ¿Hay una sintaxis especial para hacer esto o simplemente no es posible?Propiedad de control ASP.NET con [Flags] enum

Respuesta

11

Tal vez estoy entendiendo mal la pregunta, pero no puedes establece el valor enum con una cadena separada por comas.

E.g. si tengo esta propiedad en mi control:

public System.IO.FileOptions Options { get; set; } 

La puedo configurarlo en el marcado de esta manera:

<uc1:MyControl ID="control1" runat="server" 
    Options="DeleteOnClose,Asynchronous" /> 
7

Simplemente separe las banderas por comas.

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> 
Cuestiones relacionadas