2016-07-21 5 views
0

I'am с помощью веб-форм ASP.NET, и я должен сделать что-то вроде этого:Если условие со значением Eval на ASPX странице в asp.net

<asp:Panel runat="server" CssClass="cellContent" Visible='<%# (bool)Eval("IsFolder")? false:true %>'> 
         <% if(Eval("Type").ToString() == "0"){ %> 
          <asp:Image runat="server" ImageUrl="~/Content/Icon/analiza.png" Width="30px" Height="30px" ImageAlign="Left" /> 
         <% } else if(Eval("Type").ToString() == "1") {%> 
          <asp:Image runat="server" ImageUrl="~/Content/Icon/raport.png" Width="30px" Height="30px" ImageAlign="Left" /> 
         <% } %> 
        </asp:Panel> 

но I'am получаю ошибку «методы Databinding такие как Eval(), XPath() и Bind() могут использоваться только в контексте управления базой данных. ". Как я могу это достичь? «Тип» может иметь 3 значения: 0, 1, 2. В MVC что-то вроде этого очень просто, но я был вынужден использовать элементы Web Forms и Devexpress TreeList и не могу найти ответ, как это сделать:/

ответ

0

This stackoverflow answer может пролить свет на вашу проблему.

Самый простой вариант, по-видимому, использует DetailsView и устанавливает его .DataSource, а затем .DataBind().

<asp:DetailsView id="dvTest" runat="server"> 
    Type: <%# Eval("Type") %> 
</asp:DetailsView> 

Затем в вашем коде создайте список() значений (0, 1, 2). Сделайте dvTest.DataSource=numbersList, а затем dvTest.DataBind().