1

我有一个页面,它有一个 myCustomWebProfile 类型的公共属性。

在后面的代码中,我有一个文本框,我正在尝试将文本框绑定到上面描述的我的网络配置文件的属性。

无论我使用哪种绑定语法变体 - 文本框在呈现时都不会填充。

任何帮助将不胜感激。

这是 C# 代码隐藏类:

public partial class Profile : selfSvcPage
    {
        public WebProfile pgProfile { get; set; }

        protected void Page_Init(object sender, EventArgs e)
        {
            pgProfile = WebProfile.Current;
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            object o = WebProfile.Current.FirstName;
            //Successfully populates with a string

            object b = DataBinder.Eval(pgProfile, "FirstName");
            //Successfully populates with a string
        }
    }

这是代码标记:

<telerik:RadTextBox ID="FirstName" Text='<%# Eval("pgProfile.FirstName")     %>' SkinID="formText" CssClass="formField" runat="server"/>
4

3 回答 3

2

试试这个:

<telerik:RadTextBox ID="FirstName" Text='<%# pgProfile.FirstName %>' SkinID="formText" CssClass="formField" runat="server"/>

还有这个:

protected void Page_PreRenderComplete(object sender, EventArgs e)
{
    DataBind();
}

在您的情况下,您可能希望在更早的阶段进行绑定。有关详细信息,请参阅此:

为什么将 <%= %> 表达式作为服务器控件上的属性值会导致编译错误?

重要的部分:'作为我注意到的最后一件事......当我尝试使用 <%# %> + Control.DataBind() 时,我得到了我所期望的。'

于 2011-05-24T09:53:39.680 回答
1

您可以在 Page_Load 中执行此操作吗:

FirstName.Text = pgProfile.Current.FirstName;

确保 pgProfile 的初始化发生在上面的代码之前。

于 2011-05-24T09:32:42.490 回答
0

我从你的代码中得到的是你有一个

班级简介

在该类中,您已经创建了类 webProfile 的属性。

现在通过使用此属性,您正在尝试分配值,我认为您可以尝试这样的事情

Text='<%#(DataBinder.Eval(Container.DataItem, "pgProfile.Current.FirstName")).ToString()%>'
于 2011-05-24T09:42:22.300 回答