2016-07-21 14 views
0

Ich bin mit Forms ASP.NET Web, und ich habe so etwas wie dies zu tun:Wenn auf aspx Seite in asp.net mit Eval Wertbedingung

<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> 

aber Ich bin immer Fehler „Databinding-Methoden wie Eval(), XPath() und Bind() können nur im Zusammenhang mit einem datengebundenen Steuerelement verwendet werden. Wie kann ich das erreichen? "Typ" kann 3 Werte haben: 0, 1, 2. In MVC ist so etwas sehr einfach, aber ich war gezwungen, Web Forms und TreeList-Steuerelement zu verwenden, und finde keine Antwort wie man so einfach denken:/

Antwort

0

This stackoverflow answer könnte etwas Licht auf Ihr Problem werfen. Die einfachste Option scheint DetailsView zu verwenden und .DataSource und dann .DataBind() zu setzen

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

Dann in Ihrem Code, machen Sie eine Liste() des Wertes (0, 1, 2). Tun Sie dvTest.DataSource=numbersList und dann dvTest.DataBind().