2009-12-01 7 views
12

プロパティの1つが[フラグ]列挙型のASP.NETコントロールを開発しました。しかし、私はASP.NETコントロールのマークアップでこのプロパティの複数のフラグを指定することができないようです。これを行うための特別な構文がありますか、それは可能ではありませんか?[Flags] enumを使用したASP.NETコントロールプロパティ

答えて

11

たぶん私は質問が間違って理解するんだけど、あなたがすることはできませんenum値をコンマ区切りの文字列で設定します。

など。私は私のコントロールでは、このプロパティがある場合:

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

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

ザ・を私はこのようなマークアップでそれを設定することができます

7

カンマでフラグを区切ります。

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> 
関連する問題