asp.net c # условно в репитере данных - PullRequest
1 голос
/ 28 февраля 2012

Я хочу сделать что-то очень простое, отображать изображение asp: только тогда, когда у меня есть значение (т.е. не NULL) для текущего DataItem.

Как показано ниже, изображение 1 должно выводиться только при наличии значения для изображения 1 (т. Е. Eval ("Image1")), которое является полем в текущем элементе данных.

<asp:PlaceHolder ID="NewsPlaceHolder" runat="server">
    <asp:Repeater ID="NewsRepeater" runat="server">
        <ItemTemplate>
            <div class="newsItem">
                <h3><%# Eval("Title") %></h3>
                <div class="images">
                    <asp:Image ID="Image1" runat="server" ImageUrl='<%# UrlHelper.NewsImageUrl((int)Eval("Id"),1) %>' />
                    <asp:Image ID="Image2" runat="server" ImageUrl='<%# UrlHelper.NewsImageUrl((int)Eval("Id"),2) %>' />
                </div>
                <div class="content"><%# Eval("Content") %></div>
            </div>
            <br class="clear" />
        </ItemTemplate>
    </asp:Repeater>
</asp:PlaceHolder>

Есть ли несколько простых условных выражений, которые я могу использовать на странице ASPX? Большое спасибо!

Ответы [ 2 ]

6 голосов
/ 28 февраля 2012

Вы можете попробовать проверить, является ли оно пустым из кодовой области

<asp:Image ID="Image1" runat="server" visible='<%# HasData(Eval("image")) %>' ImageUrl='<%# UrlHelper.NewsImageUrl((int)Eval("Id"),1) %>' 

C #

public bool HasData(object img)
{
  if(img!=null) {return true;}
  return false;
}
1 голос
/ 28 февраля 2012

@ aspx page.

<div class="images">
                    <asp:Image ID="Image1" runat="server" ImageUrl='<%# UrlHelper.NewsImageUrl((int)Eval("Id"),1) %>' Visible = '<%#(Container.DataItem != null) ? true: false) %>' />
                    <asp:Image ID="Image1" runat="server" ImageUrl='<%# UrlHelper.NewsImageUrl((int)Eval("Id"),2) %>' Visible = '<%#(Container.DataItem != null)  ? true: false) %>' />
</div>
...