我像这样绑定到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?
有没有其他方法可以从单击的表格单元格中获取作者姓名?
答案 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>