所以我一直在寻找这个问题的一个很好的答案,但还没有找到任何有用的东西.希望有人可以为我阐明这一点.
基本上,我有一个由数据库表支持的转发器.在这个转发器的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>
Run Code Online (Sandbox Code Playgroud)
你ItemTemplate在里面写下这样的标记:
<asp:Panel runat="server" Visible='<%# Eval("imageUrl") != null %>'>
<asp:Image runat="server" ImageUrl='<%# Eval("imageUrl") %>'/>
</asp:Panel>
Run Code Online (Sandbox Code Playgroud)
基本上你不能将代码<%与数据绑定结构混合在一起<%#.
我的建议是在CodeBehind中添加以下属性:
protected YourClass DataItem
{
get
{
return (YourClass)this.Page.GetDataItem();
}
}
Run Code Online (Sandbox Code Playgroud)
然后编写标记而不Eval():
<asp:Image runat="server" ImageUrl='<%# DataItem.imageUrl %>'/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11086 次 |
| 最近记录: |