在asp.net转发器中使用相册

在asp.net转发器中使用相册,asp.net,data-binding,Asp.net,Data Binding,我试图在公文包的转发器中生成一个相册(ListView),但无法使数据源正常工作 <asp:ObjectDataSource ID="odsPhotos" runat="server" EnablePaging="True" OldValuesParameterFormatString="original_{0}" SelectCountMethod="GetPagedSetCount" S

我试图在公文包的转发器中生成一个相册(ListView),但无法使数据源正常工作

<asp:ObjectDataSource ID="odsPhotos" runat="server" 
                EnablePaging="True" OldValuesParameterFormatString="original_{0}"
                SelectCountMethod="GetPagedSetCount" 
                SelectMethod="GetPagedSet" TypeName="Infrastructure.BLL.FlickrBLL" OnSelecting="odsPhotos_Selecting">
               <SelectParameters>
                       <asp:Parameter DefaultValue="<%# Eval(Container.DataItem, "ProjPhotos")%>" Name="setId"  Type="String" />
               </SelectParameters>
           </asp:ObjectDataSource>
基本上,我有一个Flickr帐户,一个转发器将查找基于相册的图像,并在ListView中显示这些图像,但我无法将相册id作为参数来正确工作

<asp:ObjectDataSource ID="odsPhotos" runat="server" 
                EnablePaging="True" OldValuesParameterFormatString="original_{0}"
                SelectCountMethod="GetPagedSetCount" 
                SelectMethod="GetPagedSet" TypeName="Infrastructure.BLL.FlickrBLL" OnSelecting="odsPhotos_Selecting">
               <SelectParameters>
                       <asp:Parameter DefaultValue="<%# Eval(Container.DataItem, "ProjPhotos")%>" Name="setId"  Type="String" />
               </SelectParameters>
           </asp:ObjectDataSource>
目前,我在repeater中也获得了ObjectDataSource代码,而不是CodeBehind页面,但它仍然无法正确解析相册Id

<asp:ObjectDataSource ID="odsPhotos" runat="server" 
                EnablePaging="True" OldValuesParameterFormatString="original_{0}"
                SelectCountMethod="GetPagedSetCount" 
                SelectMethod="GetPagedSet" TypeName="Infrastructure.BLL.FlickrBLL" OnSelecting="odsPhotos_Selecting">
               <SelectParameters>
                       <asp:Parameter DefaultValue="<%# Eval(Container.DataItem, "ProjPhotos")%>" Name="setId"  Type="String" />
               </SelectParameters>
           </asp:ObjectDataSource>

我一直得到的错误是:文字内容('试试这个

 <asp:Parameter DefaultValue='<%# Eval(Container.DataItem, "ProjPhotos")%>' Name="setId"  Type="String" />


这可能是文字连接问题。

如@iamstapper所建议的,通过使用单引号而不是多引号来解决错误。在表达式中使用双引号时,始终必须这样做

我认为您也应该离开Containder.DataItem,如下所示:

<SelectParameters> 
    <asp:Parameter DefaultValue='<%# Eval("ProjPhotos")%>' Name="setId"  Type="String" /> 
</SelectParameters> 

但是,您真的需要为每个中继器项(即中继器中的中继器)提供单独的数据源吗?我认为您应该将对象数据源放在中继器之外


第二个选项是从代码隐藏文件初始化数据源。

您可能必须通过代码设置默认值;它可能不直接支持绑定。