ASP.NET 用户控件绑定

发布于 2024-10-05 02:06:04 字数 880 浏览 3 评论 0原文

我在 asp.net 中创建了一个具有自定义属性的用户控件,如下所示。在使用此用户控件的 aspx 页面中,我有如下内容。用户控件位于 FormView 的 EditItemTemplate 中,

<uc1:MyControl ID="c1" runat="server" CountryCode='<%# this.DropDownCountry.SelectedValue %>' Value1='<%# Bind("Value1Col") %>' />

我尝试在用户控件的 Page_Load 方法中使用 CountryCode,但该值尚未填充。

我的问题是在控件生命周期的哪个阶段填充有界值?我尝试像下面这样直接赋值,它确实在 Page_Load 方法中获取了它的值。

<uc1:MyControl ID="c1" runat="server" CountryCode="CA" Value1='<%# Bind("Value1Col") %>' />

谢谢,

uc1:MyControl 具有以下属性:

[Browsable(true)]
[Bindable(true, BindingDirection.TwoWay)]
[DefaultValue(0)]
[PersistenceMode(PersistenceMode.Attribute)]
public string CountryCode
{
    get { return _countryCode; }
    set { _countryCode = value; }
}

i created a user control with a custom property in the asp.net like the following. In the aspx page that uses this user control i have something like the following. The user control is in a FormView's EditItemTemplate

<uc1:MyControl ID="c1" runat="server" CountryCode='<%# this.DropDownCountry.SelectedValue %>' Value1='<%# Bind("Value1Col") %>' />

I am trying to use the CountryCode in the Page_Load method of the user control, but the value has not be populated.

My question is at which stage in the control's life cycle does the bounded value gets populated? I tried assigning value directly like the following and it does get its value at the Page_Load method.

<uc1:MyControl ID="c1" runat="server" CountryCode="CA" Value1='<%# Bind("Value1Col") %>' />

thanks,

the uc1:MyControl has the following property:

[Browsable(true)]
[Bindable(true, BindingDirection.TwoWay)]
[DefaultValue(0)]
[PersistenceMode(PersistenceMode.Attribute)]
public string CountryCode
{
    get { return _countryCode; }
    set { _countryCode = value; }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烟织青萝梦 2024-10-12 02:06:04

由于您使用的是数据绑定语法,因此需要在控件上调用 DataBind 方法 - 您可以将其添加到 aspx 页面的 Page_Load 方法中,如下所示:

protected void Page_Load(object sender, EventArgs e)
{
    c1.DataBind();
}

Since you're using databinding syntax you need to call DataBind method on your control - you can add this to the Page_Load method of the aspx page like so:

protected void Page_Load(object sender, EventArgs e)
{
    c1.DataBind();
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文