fagnerx21 0 Denunciar post Postado Dezembro 24, 2007 Olá, eu tentei criar uma página asp.net pra exibir imagem em um gridview em certas condições, mas está gerando uns erros, se alguém puder me ajudar fico grato. HTML: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> <strong><span style="font-size: 25px; color: blue; font-family: Trebuchet MS">Exibindo Imagens Em Um GridView Condicionalmente<br /> <br /> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4" DataKeyNames="CódigoDoProduto" DataSourceID="AccessDataSource1" Font-Bold="False" Font-Size="12pt" ForeColor="#333333" GridLines="None" OnRowDataBound="GridView1_RowDataBound"> <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> <Columns> <asp:BoundField DataField="CódigoDoProduto" HeaderText="CódigoDoProduto" InsertVisible="False" ReadOnly="True" SortExpression="CódigoDoProduto" /> <asp:BoundField DataField="NomeDoProduto" HeaderText="NomeDoProduto" SortExpression="NomeDoProduto" /> <asp:BoundField DataField="PreçoUnitário" HeaderText="PreçoUnitário" SortExpression="PreçoUnitário" /> <asp:BoundField DataField="UnidadesEmEstoque" HeaderText="UnidadesEmEstoque" SortExpression="UnidadesEmEstoque" /> </Columns> <RowStyle BackColor="#EFF3FB" /> <EditRowStyle BackColor="#2461BF" /> <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> <AlternatingRowStyle BackColor="White" /> </asp:GridView> <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/Northwind.mdb" SelectCommand="SELECT [CódigoDoProduto], [NomeDoProduto], [PreçoUnitário], [unidadesEmEstoque] FROM [Produtos]"> </asp:AccessDataSource> </span></strong> </div> </form> </body> </html> C#: using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if( e.Row.RowType = DataControlRowType.DataRow) { Image img = ((Image)(e.Row.FindControl("image1"))); switch (e.Row.Cells[3].Text) { case 0: img.ImageUrl = "~//Imagens//down.jpg"; img.Visible = true; break; case e.Row.Cells[3].Text <= 25 : img.ImageUrl = "~//Imagens//cart.jpg"; img.Visible = true; break; case (e.Row.Cells[3].Text >= 25) & (e.Row.Cells[3].Text <= 50) : img.ImageUrl = "~//Imagens//up.jpg"; img.Visible = true; break; case e.Row.Cells[3].Text > 120 : img.Visible = false; break; } } } } ErrorLog: Error 1 Cannot implicitly convert type 'System.Web.UI.WebControls.DataControlRowType' to 'bool' C:\Documents and Settings\Administrador\Meus documentos\Visual Studio 2005\WebSites\GridViewImagemCondicional\Default.aspx.cs 19 13 C:\...\GridViewImagemCondicional\ Error 2 Cannot implicitly convert type 'int' to 'string' C:\Documents and Settings\Administrador\Meus documentos\Visual Studio 2005\WebSites\GridViewImagemCondicional\Default.aspx.cs 24 22 C:\...\GridViewImagemCondicional\ Error 3 Operator '<=' cannot be applied to operands of type 'string' and 'int' C:\Documents and Settings\Administrador\Meus documentos\Visual Studio 2005\WebSites\GridViewImagemCondicional\Default.aspx.cs 28 22 C:\...\GridViewImagemCondicional\ Error 4 Operator '>=' cannot be applied to operands of type 'string' and 'int' C:\Documents and Settings\Administrador\Meus documentos\Visual Studio 2005\WebSites\GridViewImagemCondicional\Default.aspx.cs 32 23 C:\...\GridViewImagemCondicional\ Error 5 Operator '<=' cannot be applied to operands of type 'string' and 'int' C:\Documents and Settings\Administrador\Meus documentos\Visual Studio 2005\WebSites\GridViewImagemCondicional\Default.aspx.cs 32 53 C:\...\GridViewImagemCondicional\ Error 6 Operator '>' cannot be applied to operands of type 'string' and 'int' C:\Documents and Settings\Administrador\Meus documentos\Visual Studio 2005\WebSites\GridViewImagemCondicional\Default.aspx.cs 36 22 C:\...\GridViewImagemCondicional\ Por favor, me ajudem Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Juliano.net 2 Denunciar post Postado Dezembro 26, 2007 Corrigindo seu código C#: using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if( e.Row.RowType = DataControlRowType.DataRow) { Image img = ((Image)(e.Row.FindControl("image1"))); if (Convert.ToInt32(e.Row.Cells[3].Text) == 0) { img.ImageUrl = "~//Imagens//down.jpg"; img.Visible = true; } else if (Convert.ToInt32(e.Row.Cells[3].Text) <= 25) { img.ImageUrl = "~//Imagens//cart.jpg"; img.Visible = true; } else if ((Convert.ToInt32(e.Row.Cells[3].Text) >= 25) && (Convert.ToInt32(e.Row.Cells[3].Text) <= 50)) { img.ImageUrl = "~//Imagens//up.jpg"; img.Visible = true; } else if (Convert.ToInt32(e.Row.Cells[3].Text) > 120) { img.Visible = false; } } } } Sua sintaxe do case estava incorreta e você estava tentando comparar um tipo String com um Integer. Compartilhar este post Link para o post Compartilhar em outros sites