2010-10-29 16 views
2

聲明值何時綁定到WebForms中的用戶控件的屬性?何時將聲明值綁定到WebForms中用戶控件的屬性?

我有一個用戶控件,它具有一個枚舉類型的公共屬性。在我的aspx頁面中,我正在聲明性地設置它的值。在ascx中,我使用<%= %>語法將值輸出到頁面。由echo語法輸出的值始終爲零0。枚舉不nopt有一個零值。

因此,我的問題是,回聲<%= %>語法評估聲明值綁定到屬性之前?

實施例:

public enum Foo 
{ 
    Bar = 1, 
    Bahh = 2, 
    BlackSheep = 3 
} 

// MyUserControl.cs 
public class MyUserControl : UserControl 
{ 
    public Foo Fizz { get; set; } 
} 

// MyUserControl.ascx 
<a href="foo.aspx?foo=<%= this.Fizz %>">Foo</a> 

// MyPage.aspx 
<foo:MyUserControl runat="server" ID="foo:MyUserControl1" Fizz="Bar" /> 
<foo:MyUserControl runat="server" ID="foo:MyUserControl2" Fizz="Bahh" /> 
<foo:MyUserControl runat="server" ID="foo:MyUserControl3" Fizz="BlackSheep" /> 

的輸出是:

<a href="foo.aspx?foo=0">Foo</a> 
<a href="foo.aspx?foo=0">Foo</a> 
<a href="foo.aspx?foo=0">Foo</a> 

我要去假設零爲任何枚舉成員的「未設置」值,因此假設<%=件之前執行該值綁定到該屬性。

回答

2

零是默認值,是您的usercontrol上的標記在聲明設置之前進行評估。您應該設置page_init事件的值

相關問題