何时声明的值绑定到WebForms中的用户控件的属性?

时间:2010-10-29 13:40:55

标签: asp.net asp.net-3.5

何时声明的值绑定到WebForms中的用户控件的属性?

我有一个用户控件,其公共属性是枚举类型。在我的aspx页面中,我以声明方式设置它的值。在ascx中,我使用<%= %>语法将值输出到页面。 echo语法输出的值始终为零0。 enum确实nopt的值为零。

因此,我的问题是,在声明的值绑定到属性之前评估了echo <%= %>语法吗?

示例:

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>

我将假设零是任何枚举成员的“未设置”值,因此假设在将值绑定到属性之前执行<%=

1 个答案:

答案 0 :(得分:2)

零是默认值,是的,在声明设置之前评估usercontrol上的标记。您应该在page_init事件

上设置值