Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以将asp.net中继器的数据源设置为列表<;字符串>;这是一个类的属性吗?_Asp.net_Repeater_Datasource - Fatal编程技术网

是否可以将asp.net中继器的数据源设置为列表<;字符串>;这是一个类的属性吗?

是否可以将asp.net中继器的数据源设置为列表<;字符串>;这是一个类的属性吗?,asp.net,repeater,datasource,Asp.net,Repeater,Datasource,这是我的中继器的aspx: <asp:Repeater ID="rpt_Files" runat="server"> <HeaderTemplate> <th><asp:Label runat="server" ID="lbl_FileNameHeader" Text="File Name" /></th> </HeaderTemplate>

这是我的中继器的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>
下面是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; }
}

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

您应该将数据源分配给如下对象列表:

List<CurrentQuote> myCurrentQuoteList = new List<CurrentQuote>();
CurrentQuote  currentQuoteObj = new CurrentQuote();  
currentQuoteObj.JobFileNames.Add("test");
myCurrentQuoteList.Add(myCurrentQuoteList );  

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

rpt_Files.DataSource = cq.JobFileNames;
rpt_Files.DataBind();
List myCurrentQuoteList=new List();
CurrentQuote currentQuoteObj=新的CurrentQuote();
currentQuoteObj.JobFileNames.Add(“测试”);
myCurrentQuoteList.Add(myCurrentQuoteList);
rpt_Files.DataSource=myCurrentQuoteList;
rpt_Files.DataBind();

不能直接分配类对象,应实现IListSource或IEnumerable作为数据源。

如果一个引号包含多个文件,则数据源应如下所示:

List<CurrentQuote> myCurrentQuoteList = new List<CurrentQuote>();
CurrentQuote  currentQuoteObj = new CurrentQuote();  
currentQuoteObj.JobFileNames.Add("test");
myCurrentQuoteList.Add(myCurrentQuoteList );  

rpt_Files.DataSource = myCurrentQuoteList;
rpt_Files.DataBind();
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,因为它是一个字符串。

没有.SingleItemDataSource很糟糕