我有一个页面,其公共属性类型为myCustomWebProfile。
在后面的代码中我有一个文本框,我试图将文本框绑定到我上面描述的web配置文件的属性。
无论我使用哪种绑定语法 - 文本框在渲染时都不会填充。
非常感谢任何帮助。
这是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"/>
答案 0 :(得分:2)
试试这个:
<telerik:RadTextBox ID="FirstName" Text='<%# pgProfile.FirstName %>' SkinID="formText" CssClass="formField" runat="server"/>
而且:
protected void Page_PreRenderComplete(object sender, EventArgs e)
{
DataBind();
}
在您的情况下,您可能希望在较早阶段进行绑定。有关详细信息,请参阅此处:
Why will <%= %> expressions as property values on a server-controls lead to a compile errors?
重要的部分:'我注意到的最后一件事......当我尝试使用&lt;%#%&gt; + Control.DataBind(),然后我得到我所期望的。 “
答案 1 :(得分:1)
您可以在Page_Load中执行此操作:
FirstName.Text = pgProfile.Current.FirstName;
确保pgProfile的初始化发生在上面的代码之前。
答案 2 :(得分:0)
我从你的代码中得到的是你有一个
班级简介
在该类中,您创建了类webProfile的属性。
现在通过使用此属性,您尝试分配值我认为您可以尝试这样的事情
Text='<%#(DataBinder.Eval(Container.DataItem, "pgProfile.Current.FirstName")).ToString()%>'