尝试Eval()时出现分析器错误

时间:2014-09-26 20:23:32

标签: javascript c# asp.net

我像这样绑定到ListView:

                var authors =  (from a in db.Books
                              where a.Author.StartsWith(letter)
                              group a by a.Author into g
                              select new{Author=g.Key}).ToList();
                ListView1.DataSource = authors;
                ListView1.DataBind();

当用户点击项目时,我需要将他重定向到另一个带有一些查询字符串的页面。这是我的ItemTemplate:

<ItemTemplate>
    <td runat="server" onclick="window.location.href = 'CatalogAutor.aspx?text=<%#Eval("Author") %>';">
       <asp:Label ID="AutorLabel" runat="server" Text='<%# Eval("Author") %>' />
    </td>
</ItemTemplate>
Eval("Author")中的{p> asp:Label效果很好,但为什么我会得到&#34; Parser错误:服务器标记格式不正确&#34;关于onclick事件中的Eval? 有没有其他方法可以从单击的表格单元格中获取作者姓名?

1 个答案:

答案 0 :(得分:1)

你真的不需要td标签上的runat = server,它仍然会对值进行数据绑定

所以这应该有效:

<ItemTemplate>
      <td onclick="window.location.href = 'CatalogAutor.aspx?text=<%#Eval("Author") %>'">
             <asp:Label ID="AutorLabel" runat="server" Text='<%# Eval("Author") %>' />
       </td>
</ItemTemplate>