gpt4 book ai didi

asp.net - 是否可以让 asp.net 转发器的数据源是作为类属性的 list

转载 作者:行者123 更新时间:2023-12-02 15:25:01 24 4
gpt4 key购买 nike

这是我的中继器的 aspx:

<asp:Repeater ID="rpt_Files" runat="server">
<HeaderTemplate>
<th><asp:Label runat="server" ID="lbl_FileNameHeader" Text="File Name" /></th>
</HeaderTemplate>
<ItemTemplate>
<asp:Label runat="server" ID="lbl_FileName" Text='<%# Eval("JobFileNames") %>' />
</ItemTemplate>
</asp:Repeater>

以下是 C# 中绑定(bind)数据的代码:

rpt_Files.DataSource = CurrentQuote;
rpt_Files.DataBind();

这是 CurrentQuote 的类定义:

public class CurrentQuote
{
// Properties
private List<string> _jobfilenames;
public List<string> JobFileNames
{
get
{
if (_jobfilenames != null)
return _jobfilenames;
else
{
_jobfilenames = new List<string>();
return _jobfilenames;
}
}

set { _jobfilenames = value; }
}

这是我收到的错误:

An invalid data source is being used for rpt_Files. A valid data source must implement either IListSource or IEnumerable.

如果我将中继器数据源更改为 CurrentQuote.JobFileNames,我会收到一条错误,指出该字符串没有名为“JobFileNames”的属性。

最佳答案

如果您的一个报价包含多个文件,您的数据源应如下所示:

CurrentQuote cq = new CurrentQuote();
string[] filenames = new string[] { "file1", "file2", "file3" };
cq.JobFileNames = filenames.ToList();

rpt_Files.DataSource = cq.JobFileNames;
rpt_Files.DataBind();

然后在标记中您可以使用:

<asp:Label runat="server" ID="lbl_FileName" Text='<%# Container.DataItem %>' />

所以是的,“asp.net 转发器的数据源可以是一个类属性的列表”,但您应该首先实例化该类,并且必须从标记中直接访问 DataItem,因为它是一个字符串。

关于asp.net - 是否可以让 asp.net 转发器的数据源是作为类属性的 list<string> ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10646599/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com