Usuário com melhor resposta
Separar uma string

Pergunta
-
Recupero de uma provider uma string contento o id do produto, tamanho e o modelo escolhido por um cliente. Basicamente neste formato:
IDPRODUTO-TAMANHO-MODELO
Bindo um Gridview com o <%#Eval("string")%>
porém preciso realizar dentro do Eval o split e separar cada informação da string.
O projeto já havia a separação do id do produto e do tamanho dessa maneira
<%#Eval("ProductID").ToString().Substring(Eval("ProductID").ToString().IndexOf(Convert.ToChar("-"))).Replace("-", "")%>
(com isso eu conseguia recuperar o tamanho que continha na string)
Agora não sei como fazer pra separar também o modelo selecionado, se alguém souber como fazer isto ficarei muito agradecido.
Abraços!
-------------------------------------- Se a resposta for útil marque como resposta
Respostas
-
Juan veja se isto te ajuda:
Resultado:
.cs
using System; using System.Data; using System.Linq; using System.Collections.Generic; using System.Web.UI.WebControls; namespace WebApplication1 { public class Produto { public string ProductID { get; set; } } public partial class WebForm1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //Simulando retorno do banco List<Produto> lista = new List<Produto> { new Produto{ ProductID = "10-GG-Camisa1" }, new Produto{ ProductID = "11-M-Camisa32" }, new Produto{ ProductID = "12-G-Camisa2" } }; //Aplicando ao GridView grvModelos.DataSource = lista; grvModelos.DataBind(); } public static string FormatarValor(string valor, string tipo) { string[] valores = valor.Split('-'); switch (tipo) { case "IdProduto": return valores[0]; case "Tamanho": return valores[1]; case "Modelo": return valores[2]; default: return string.Empty; } } } }
.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %> <!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> <title></title> </head> <body> <form id="form1" runat="server"> <asp:GridView runat="server" AutoGenerateColumns="false" ID="grvModelos"> <Columns> <asp:TemplateField HeaderText="IdProduto"> <ItemTemplate> <%# FormatarValor(Eval("ProductID").ToString(),"IdProduto") %> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Tamanho"> <ItemTemplate> <%# FormatarValor(Eval("ProductID").ToString(),"Tamanho") %> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Modelo"> <ItemTemplate> <%# FormatarValor(Eval("ProductID").ToString(),"Modelo") %> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> </form> </body> </html>
Vitor Mendes | Seu feedback é muito importante para todos!
Visite o meu site: http://www.vitormendes.com.br/- Marcado como Resposta Juan Nogueira terça-feira, 22 de maio de 2012 16:05
Todas as Respostas
-
Juan veja se isto te ajuda:
Resultado:
.cs
using System; using System.Data; using System.Linq; using System.Collections.Generic; using System.Web.UI.WebControls; namespace WebApplication1 { public class Produto { public string ProductID { get; set; } } public partial class WebForm1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //Simulando retorno do banco List<Produto> lista = new List<Produto> { new Produto{ ProductID = "10-GG-Camisa1" }, new Produto{ ProductID = "11-M-Camisa32" }, new Produto{ ProductID = "12-G-Camisa2" } }; //Aplicando ao GridView grvModelos.DataSource = lista; grvModelos.DataBind(); } public static string FormatarValor(string valor, string tipo) { string[] valores = valor.Split('-'); switch (tipo) { case "IdProduto": return valores[0]; case "Tamanho": return valores[1]; case "Modelo": return valores[2]; default: return string.Empty; } } } }
.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %> <!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> <title></title> </head> <body> <form id="form1" runat="server"> <asp:GridView runat="server" AutoGenerateColumns="false" ID="grvModelos"> <Columns> <asp:TemplateField HeaderText="IdProduto"> <ItemTemplate> <%# FormatarValor(Eval("ProductID").ToString(),"IdProduto") %> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Tamanho"> <ItemTemplate> <%# FormatarValor(Eval("ProductID").ToString(),"Tamanho") %> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Modelo"> <ItemTemplate> <%# FormatarValor(Eval("ProductID").ToString(),"Modelo") %> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> </form> </body> </html>
Vitor Mendes | Seu feedback é muito importante para todos!
Visite o meu site: http://www.vitormendes.com.br/- Marcado como Resposta Juan Nogueira terça-feira, 22 de maio de 2012 16:05
-