ASP.Net:ListView 的 ItemTemplate 中的条件逻辑
我想根据绑定字段是否为空来显示 ItemTemplate
的某些部分。 以下面的代码为例:
(为简洁起见,已删除诸如 LayoutTemplate 之类的代码)
<asp:ListView ID="MusicList" runat="server">
<ItemTemplate>
<tr>
<%
if (Eval("DownloadLink") != null)
{
%>
<td>
<a href="<%#Eval("DownloadLink") %>">Link</a>
</td>
<%
} %>
</tr>
</ItemTemplate>
</asp:ListView>
上面给出了以下运行时错误:
数据绑定方法,例如 Eval()、 只能使用 XPath() 和 Bind() 在数据绑定控件的上下文中。
那么如何将一些条件逻辑(如上面的)放入 ItemTemplate
中?
I want to show certain parts of an ItemTemplate
based according to whether a bound field is null. Take for example the following code:
(Code such as LayoutTemplate have been removed for brevity)
<asp:ListView ID="MusicList" runat="server">
<ItemTemplate>
<tr>
<%
if (Eval("DownloadLink") != null)
{
%>
<td>
<a href="<%#Eval("DownloadLink") %>">Link</a>
</td>
<%
} %>
</tr>
</ItemTemplate>
</asp:ListView>
The above gives the following run-time error:
Databinding methods such as Eval(),
XPath(), and Bind() can only be used
in the context of a databound control.
So how can put some conditional logic (like the above) in an ItemTemplate
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
将控件的“Visible”属性绑定到您的条件怎么样? 就像是:
What about binding the "Visible" property of a control to your condition? Something like:
解决“服务器标记格式不正确”的问题。 对于涉及可见性的答案,请删除 Visible= 参数中的引号。
所以它会变成:
To resolve "The server tag is not well formed." for the answers involving visibility, remove quotes from the Visible= parameter.
So it will become:
我不建议将此作为一个好方法,但您可以通过捕获 OnItemDataBound 事件中的当前项目,将其存储在公共属性或字段中,然后在条件逻辑中使用它来解决此问题。
例如:
在服务器端将以下代码添加到代码隐藏文件中:
请注意,此技巧在
UpdatePanel
控件中不起作用。I'm not recommending this as a good approach but you can work around this issue by capturing the current item in the OnItemDataBound event, storing it in a public property or field and then using that in your conditional logic.
For example:
And on the server side add the following code to your code behind file:
Note that this trick will not work in an
UpdatePanel
control.如果您有 2 个不同的结构要根据条件渲染,则使用面板
If you have 2 different structure that are to be rendered according to a condition then use panels