asp.net上带有IF的复杂绑定表达式
本文关键字:复杂 绑定 表达式 IF net asp | 更新日期: 2023-09-27 18:24:09
我有一个带有列的中继器,我需要有以下表达式,但不确定语法。
如果value="DispForm.aspx",则显示"无文档"其他的显示实际价值。
我试着在一行中使用所有的表达式,但不确定我在这里缺少了什么
<a href=" <%# DataBinder.Eval(Container.DataItem, "Path") %>">
<%#
if (DataBinder.Eval(Container.DataItem, "FileName") == "DispForm.aspx")
{
"No document";
}
else
{
DataBinder.Eval(Container.DataItem, "FileName");}%>
</a>
错误:
http://screencast.com/t/ZERZjzZxST
使用ItemDataBound事件会简单得多,在anchor元素中添加一个id和runat="server",然后可以使用e.Item.FindControl("anchorname")来获取htmlanchor元件。然后,您可以在codeehind中设置它的文本、href、可见性等,这比尝试让一些更困难的数据绑定逻辑有效工作要容易得多。
我自己解决了这个问题:每一行的服务器端都会触发项目数据绑定事件,这个报告返回2000行。这不是一件好事。
<a href="<%# DataBinder.Eval(Container.DataItem, "fileNameUrl") %>">
<%# DataBinder.Eval(Container.DataItem, "FileName").ToString() == "DispForm.aspx" ? "No document" : DataBinder.Eval(Container.DataItem, "FileName").ToString() %>
</a>