更改datalist中超链接的文本

时间:2011-12-05 22:07:16

标签: asp.net data-binding datalist

我正在尝试将我编写的SQL代码中的列绑定到datalist中的所有超链接。这应该很简单,但我收到了错误

  

DataBinding:'System.Data.Common.DataRecordInternal'不包含   一个名为'NumberOfComments'的财产。

嗯,我很确定该列存在,但在这种情况下,它是由一个函数创建的,可能与它有关。当我运行SQL代码时,我得到了应该的值。

超链接

            <asp:HyperLink ID="lnkComment" runat="server" 
                NavigateUrl='<%# Eval("ID", "~/Default.aspx?ID={0}") %>' 
                Text='<%# Eval("NumberOfComments") %>'></asp:HyperLink>

SQLDataSource

        <asp:SqlDataSource ID="sdsNews" runat="server" 
            ConnectionString="<%$ ConnectionStrings:ASPNETDBConnectionString %>" SelectCommand="SELECT        News.ID, News.Topic, News.Text, News.PostTime, aspnet_Users.UserName, &quot;NumberOfComments&quot; = dbo.fnNumberOfCommentOnNews(News.ID)
FROM            News INNER JOIN
                         aspnet_Users ON News.UserId = aspnet_Users.UserId
WHERE        (News.ID = ISNULL(@ID, News.ID))
ORDER BY News.PostTime DESC ">
            <SelectParameters>
                <asp:QueryStringParameter DbType="Guid" Name="ID" QueryStringField="ID" DefaultValue="" />
            </SelectParameters>
        </asp:SqlDataSource>

1 个答案:

答案 0 :(得分:0)

为什么围绕NumberOfComments FieldName有“&quot;”?

尝试将select命令粘贴到SSMS(SQL Server Mgmt studio)中,您肯定会得到错误的语法错误。如果删除那些引用的html代码,您仍然可以引用并绑定到该列。