如何解决使 asp:HyperLink 成为 asp:DataList 中的列表项
我已经寻找了解决方案,但缺少一些东西,我不知道它是什么。下面的所有代码都可以正常工作,除了 asp:HyperLink
给我一个错误。我只需要一个
带有每个艺术家链接的列。当前代码确实填充了一个单列表。但我需要每个项目都是一个链接。
代码:
<asp:DataList ID="DataListArtists" runat="server" DataSourceID="sqlDataSourceArtists">
<ItemTemplate>
<table class="table">
<tr>
<th colspan="2">
<b>
<%# Eval("Artist") %></b>
</th>
</tr>
</table>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("Artist.aspx") %>' Text='<%# Eval("Artist") %>' />
</asp:HyperLink>
</ItemTemplate>
</asp:DataList>
错误:
DataBinding: 'System.String' does not contain a property with the name 'aspx'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it
originated in the code.
Exception Details: System.Web.HttpException: DataBinding: 'System.String' does not contain a property with the name 'aspx'.
Source Error:
Line 82: </tr>
Line 83: </table>
Line 84: <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("Artist.aspx") %>' Text='<%# Eval("Artist") %>' />
Line 85: </ItemTemplate>
堆栈跟踪:
[HttpException (0x80004005): DataBinding: 'System.String' does not contain a property with the name 'aspx'.]
System.Web.UI.DataBinder.GetPropertyValue(Object container,String propName) +8764405
System.Web.UI.DataBinder.Eval(Object container,String[] expressionParts) +92
System.Web.UI.DataBinder.Eval(Object container,String expression) +106
System.Web.UI.TemplateControl.Eval(String expression) +40
ASP.artists_aspx.__DataBinding__control7(Object sender,EventArgs e) in c:\Users\lookerup\Desktop\mystuff\programming\apps\FlatbushMusic\FlatbushMusic\Artists.aspx:84
System.Web.UI.Control.OnDataBinding(EventArgs e) +99
System.Web.UI.Control.DataBind(Boolean raiSEOnDataBinding) +92
System.Web.UI.Control.DataBind() +15
System.Web.UI.Control.DataBindChildren() +211
System.Web.UI.Control.DataBind(Boolean raiSEOnDataBinding) +102
System.Web.UI.Control.DataBind() +15
System.Web.UI.WebControls.DataList.CreateItem(Int32 itemIndex,ListItemType itemType,Boolean dataBind,Object dataItem) +125
System.Web.UI.WebControls.DataList.CreateControlHierarchy(Boolean useDataSource) +459
System.Web.UI.WebControls.BaseDataList.OnDataBinding(EventArgs e) +54
System.Web.UI.WebControls.BaseDataList.DataBind() +55
System.Web.UI.WebControls.BaseDataList.EnsureDataBound() +60
System.Web.UI.WebControls.BaseDataList.CreateChildControls() +69
System.Web.UI.Control.EnsureChildControls() +87
System.Web.UI.Control.PreRenderRecursiveInternal() +44
System.Web.UI.Control.PreRenderRecursiveInternal() +171
System.Web.UI.Control.PreRenderRecursiveInternal() +171
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterasyncPoint) +842
解决方法
试试这个方法。
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("Artist") + ".aspx" %>' Text='<%# Eval("Artist") %>' />
,
Thomson Mixab 在代码中给出了答案。这是:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。