2009-12-01 12 views
12

मैंने एक एएसपी.NET नियंत्रण विकसित किया है जिसके लिए गुणों में से एक [ध्वज] enum है। हालांकि, मैं एएसपी.NET नियंत्रण मार्कअप में इस संपत्ति के लिए एकाधिक झंडे निर्दिष्ट करने में सक्षम नहीं प्रतीत होता। क्या ऐसा करने के लिए कोई विशेष वाक्यविन्यास है या क्या यह संभव नहीं है?एएसपी.NET नियंत्रण संपत्ति [ध्वज] enum

उत्तर

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> 
संबंधित मुद्दे