gpt4 book ai didi

c# - If 语句中的 ASP.Net Repeater Eval

转载 作者:行者123 更新时间:2023-11-30 13:59:27 25 4
gpt4 key购买 nike

所以我一直在寻找这个问题的好答案,但没有真正找到有用的东西。希望有人能为我阐明这一点。

基本上,我有一个由数据库表支持的转发器。在这个转发器的 ItemTemplate 中,我有一些 HTML 元素,这些元素填充了列表中每个项目的属性。很标准的东西。但是,其中一项可能为空。在那种情况下,对我来说放置某种 if (blah != null) 是有意义的围绕违规代码的逻辑。唯一的问题是,当我尝试这样做时,ASP 向我抛出,告诉我不能在 <%# %> 中使用 if 语句。 .

我对大众的问题是:如果你不能在 <%# %> 中使用 if 语句, 那么你应该如何根据每个项目的值进行条件逻辑?

我知道您可以在转发器中调用您自己的方法,但这对我正在尝试做的事情不起作用。

下面是我正在努力完成的,以更好地说明我的观点。

<asp:Repeater runat="server" ID="repeater">
<ItemTemplate>
<div class="item-wrap">
<% if(Eval("imageUrl") != null) { %>
<div class="plan-img">
<asp:Image runat="server" ImageUrl='<%# Eval("imageUrl") %>'/>
</div>
<% } %>
</div>
</ItemTemplate>
</asp:Repeater>

最佳答案

在你的 ItemTemplate 里面像这样写标记:

<asp:Panel runat="server" Visible='<%# Eval("imageUrl") != null %>'>
<asp:Image runat="server" ImageUrl='<%# Eval("imageUrl") %>'/>
</asp:Panel>

基本上你不能混合代码<%具有数据绑定(bind)结构 <%# .

我的建议是在代码隐藏中添加以下属性:

    protected YourClass DataItem
{
get
{
return (YourClass)this.Page.GetDataItem();
}
}

然后在没有 Eval() 的情况下编写标记:

    <asp:Image runat="server" ImageUrl='<%# DataItem.imageUrl %>'/>

关于c# - If 语句中的 ASP.Net Repeater Eval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13386519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com