从List <myclass>填充的Repeater,如何在webform中获取类?</myclass>

时间:2012-02-06 19:53:17

标签: asp.net .net class repeater webforms

在我的代码隐藏中使用此类填充转发器:

public class Reference
{
    public string PageType;
    public string Url;
    public string Name;
}

这段代码:

var NewReference = new Reference();
NewReference.Name = "Hello World"
TheList.Add(NewReference);
TheRepeater.DataSource = TheList;
TheRepeater.DataBind();

如何获取&#34;名称&#34;,&#34; PageType&#34;和&#34; Url&#34;在webform中?

我试过了:

<%# Eval("Name") %>

没有运气......

3 个答案:

答案 0 :(得分:0)

作为第一步 - 确保填写DataSource的代码执行(只是放置一个断点)。

尝试将其放入标签

<asp:Label runat="server">
    <%# Eval("Name") %>
</asp:Label>

如果需要,您还可以添加更多格式

<asp:Label runat="server">
    <%# String.Format("Name = {0}", Eval("Name")) %> 
</asp:Label>

有关详细信息,请参阅MSDN Data-Binding Expressions Overview

答案 1 :(得分:0)

你可以尝试

<%# Container.DataItem.Name %>

其中“Name”是您引用的对象中的参数。这是假设您在转发器本身中列出它。

答案 2 :(得分:0)

如果您要处理ItemDataBound事件,

您可以将dataitem转换为类型参考,然后访问您的属性

var myItem = e.Item.DataItem as Reference;
var youAreLookingFor1 = myItem.Name;
var youAreLookingFor2 = myItem.Url;
var youAreLookingFor3 = myItem.PageType;

否则你可以在设计师

上访问它

更新!!!!

 <%# DataBinder.Eval(e.Item.DataItem, "Name") %> 

你也应该可以使用

<%# Eval("propertyName") %> 

希望有所帮助。