Как повлиять на различия в содержимом строки при привязке набора данных к ListView в ASP.NET 3.5 - PullRequest
0 голосов
/ 05 октября 2010

Я добавил ListView в веб-форму, и этот код работает, когда столбцы данных в связанном наборе данных имеют значения:

<asp:ListView ID="picturesListView" runat="server"
    GroupPlaceholderID="groupsGoHere"
    ItemPlaceholderID="itemsGoHere" 
    GroupItemCount="1" >

    <LayoutTemplate>
            <p id="pictureList">Picture List:</p>
            <ol id="imagegallery">
                <asp:PlaceHolder ID="groupsGoHere" runat="server" />
            </ol>
    </LayoutTemplate>
    <GroupTemplate>
          <asp:PlaceHolder runat="server" ID="itemsGoHere" />
    </GroupTemplate>        
    <ItemTemplate>
            <li>
                <a href="<%# Eval("ImageURL")%>" title="<%#Eval("ImageDesc") %>">
                    <%#Eval("ImageDesc")%> 
                </a>
            </li>            
    </ItemTemplate>
</asp:ListView>

Затем в файле codebehind у меня есть только эти 2строк для заполнения ListView:

picturesListView.DataSource = dsImages
picturesListView.DataBind()

Все строки в наборе данных имеют значение для столбца ImageURL, но столбец ImageDesc может быть нулевым или пустой строкой.Как я могу проверить, является ли ImageDesc для данной строки пустым, и создать «псевдодескриптор», такой как «безымянный номер изображения N», где N - относительный номер строки в наборе данных.Я полагаю, я мог бы изменить хранимую процедуру, которая возвращает этот набор данных ... но кажется, что это возможно.

1 Ответ

1 голос
/ 05 октября 2010

Это можно сделать более изящно, но следует ответить на ваш вопрос:

<div runat="server" visible='<%# !string.IsNullOrEmpty(Eval("ImageDesc","{0}") )%>' > 
<a href="<%# Eval("ImageURL")%>" title="<%#Eval("ImageDesc") %>">
                    <%#Eval("ImageDesc")%> 
                </a>
</div>
<div runat="server" visible='<%# string.IsNullOrEmpty(Eval("ImageDesc","{0}") )%>' >
My psuedo-descriptor
</div>
...