我正在尝试在Repeater中为组合生成PhotoAlbum(ListView),但我无法让DataSource正常工作。
基本上我有一个Flickr帐户,转发器会根据相册查找图像,并在ListView中显示这些图像,但我无法将相册ID作为参数才能正常工作。
目前我在转发器中也有ObjectDataSource代码,而不是CodeBehind页面,但它仍然无法正确解析Album 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>
我不断得到的错误:字面内容('
答案 0 :(得分:0)
试试这个
<asp:Parameter DefaultValue='<%# Eval(Container.DataItem, "ProjPhotos")%>' Name="setId" Type="String" />
它可能是字面串联问题。
答案 1 :(得分:0)
错误是通过使用单引号而非tan a dobule引用来解决的,就像@IamStalker建议的那样。当你在表达式中使用双引号时,你总是必须这样做。
我认为你应该把Containder.DataItem放在一边,就像这样:
<SelectParameters>
<asp:Parameter DefaultValue='<%# Eval("ProjPhotos")%>' Name="setId" Type="String" />
</SelectParameters>
但是你真的需要为每个转发器项目(转发器中的转发器)提供单独的数据源吗?我认为你应该将对象数据源放在转发器之外。
第二个选项是从代码隐藏文件初始化数据源。