ASP.NET User Control : can#39;t initialize a user control property using Eval(quot;...quot;)(ASP.NET 用户控件:无法使用 Eval(...) 初始化用户控件属性)
问题描述
I designed a user control. It contains a public property "CurrentValue". When I try to initialize the property using an Eval expression, a null value is assigned.
// In below code, label assignment is OK, RatingNull user control assignment get null
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("Difficulty") %>'
<uc1:RatingNull ID="RatingNull1" runat="server" CurrentValue='<%# Eval("Difficulty") %>' />
</ItemTemplate>
If I directly assigned a value (ie, CurrentValue="5"), user control works fine.
public partial class RatingNull : System.Web.UI.UserControl
{
private string _CurrentValue;
public string CurrentValue
{
get { return _CurrentValue; }
set { _CurrentValue = value; }
}
(...)
}
The following code works for me. When do you use _CurrentValue
field?
UserControl
public partial class Test1 : System.Web.UI.UserControl
{
public string CurrentValue
{
get { return (string)ViewState["CurrentValue"] ?? string.Empty; }
set { ViewState["CurrentValue"] = value; }
}
protected override void Render(HtmlTextWriter writer)
{
base.Render(writer);
writer.Write(this.CurrentValue);
}
}
Page
protected void Page_Load(object sender, EventArgs e)
{
var ds = new[]
{
new { FirstName = "F1", LastName = "L1" },
new { FirstName = "F2", LastName = "L2" },
};
DataList1.DataSource = ds;
DataList1.DataBind();
}
Html Markup
<asp:DataList ID="DataList1" runat="server">
<ItemTemplate>
<uc1:Test ID="Test1" runat="server" CurrentValue='<%# Eval("FirstName") %>' />
</ItemTemplate>
</asp:DataList>
这篇关于ASP.NET 用户控件:无法使用 Eval("...") 初始化用户控件属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:ASP.NET 用户控件:无法使用 Eval("...") 初始化用户控件属性


- MoreLinq maxBy vs LINQ max + where 2022-01-01
- C#MongoDB使用Builders查找派生对象 2022-09-04
- 如何用自己压缩一个 IEnumerable 2022-01-01
- 在哪里可以找到使用中的C#/XML文档注释的好例子? 2022-01-01
- 良好实践:如何重用 .csproj 和 .sln 文件来为 CI 创建 2022-01-01
- C# 中多线程网络服务器的模式 2022-01-01
- WebMatrix WebSecurity PasswordSalt 2022-01-01
- 输入按键事件处理程序 2022-01-01
- Web Api 中的 Swagger .netcore 3.1,使用 swagger UI 设置日期时间格式 2022-01-01
- 带有服务/守护程序应用程序的 Microsoft Graph CSharp SDK 和 OneDrive for Business - 配额方面返回 null 2022-01-01