Свойство элемента управления ASP.NET с перечислением [Flags] - PullRequest
12 голосов
/ 02 декабря 2009

Я разработал элемент управления ASP.NET, одним из свойств которого является перечисление [Flags]. Однако я не могу указать несколько флагов для этого свойства в разметке элемента управления ASP.NET. Для этого есть специальный синтаксис или это просто невозможно?

Ответы [ 2 ]

12 голосов
/ 02 декабря 2009

Возможно, я неправильно понял вопрос, но вы не можете установить значение перечисления через запятую.

например. если у меня есть это свойство в моем контроле:

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

Я могу установить его в разметке так:

<uc1:MyControl ID="control1" runat="server"
    Options="DeleteOnClose,Asynchronous" />
7 голосов
/ 02 декабря 2009

Просто разделите флаги запятыми.

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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...