Usuário com melhor resposta
Mostrar uma Lista dataSet usando o mvc3

Pergunta
-
Boa noite, Galera!
Estou com um problema para listar um DataSet na minha view(mvc3).
na minha controller já estou retornando a lista coloquei como parametro um registro que já sabia que tinha no banco. Esta lista está vindo de um WebService.
public ActionResult Index(string empreendimentos,string torre) { var lista = webService.TabelaDeVendas("C380", "1"); return View(lista); }
Na minha View eu gostaria de saber como listar estes registros. eu fiz desta forma mas na hora de lista na tela não estou sabendo mostrar
@model System.Data.DataSet @using System.Data; @{ ViewBag.Title = "Index"; Layout = "~/Views/Shared/_LayoutFrontEnd.cshtml"; } <h2>Index</h2> @foreach (var dc in Model.Tables) { }
Dentro do foreach não estou sabendo pegar a minha propriedade para mostrar na tela.
Grato,
Respostas
-
Ok. Nao esqueca de marca como resolvido.
att.
- Marcado como Resposta cleiton costa segunda-feira, 11 de junho de 2012 12:51
Todas as Respostas
-
boa noite Cleiton, voce pode usar VIEWDATA para passar objetos para sua VIEW aqui vai exemplo:
Controller
//novo nome da minha view public ActionResult novo() { //eu tenho uma classe de conexao e estancio ela ClsConexao con = new ClsConexao(); //ViewData recebe uma DataTable do meu metodo retornosql. //ViewData 'ListaDataSet' é um nome que do para chave ViewData["ListaDataSet"] = con.retornoSql("select * from usuario"); return View(); }
View
@using System.Data @{ ViewBag.Title = "novo"; } @{ //agora eu recupero meu DataTabe. //(DataTable) falo po compilador que o tipo é DataTable DataTable T =(DataTable) ViewData["ListaDataSet"]; //agora eu varro a tabela e imprimindo na tela foreach (DataRow Linha in T.Rows) { foreach (DataColumn Coluna in T.Columns) { Response.Write(Linha[Coluna] + "<br>"); } } }
espero te ajudado, qualquer coisa posta ai de novo.
att.
-
-
-
-
-
Cleiton voce pode fazer assim, continuando com mesmo codigo acima
//cria um array de datarow, 'T' é sua tabela. usa o metodo select. 'nome' é a coluna DataRow[] rows = T.Select("", "Nome"); //varre seu array '[1]' é a posicao da coluna, e imprime na tela foreach (var item in rows) { Response.Write(item[1]+"<br>"); }
ok -
Welignton, eu peguei este dataset e passei para um objeto que eu criei e estou listando ele na view, mas estou com um problema para ordernar este objeto. já tentei de duas formas mas não estou conseguindo voce tem alguma solução para o meu problema, ja procurei de de tudo mas ainda não consegui nada. Vou enviar o código da minha controller.
Abraço,
public ActionResult ListarTorre(string emp, string tor) { string empreendimentos = emp; string torre = tor; DataSet d = webVendas.EspelhoDataSet(empreendimentos, torre, ""); DataView dv = new DataView(d.Tables["TB_UNIDADES"]); dv.Sort = "andar Desc"; DataTable table = dv.Table; Torre torre2 = new Torre(); using (DataTableReader dtRdr = table.CreateDataReader()) { string AndarAtual = ""; int i = 0; dtRdr.Read(); do { Andar andar2 = new Andar(); AndarAtual = dtRdr["andar"].ToString(); do { if (AndarAtual != dtRdr["andar"].ToString()) { break; } Unidade u = new Unidade(); u.ANDAR = dtRdr["andar"].ToString(); u.CODIGO_EMPREENDIMENTO = dtRdr["codigoempreendimento"].ToString(); u.CODIGO_TORRE = dtRdr["codigotorre"].ToString(); u.DESCRICAO_EMPREENDIMENTO = dtRdr["descricaoempreendimento"].ToString(); u.DESCRICAO_STATUS_UNIDADE = dtRdr["descricaostatusunidade"].ToString(); u.DESCRICAO_TORRE = dtRdr["descricaotorre"].ToString(); u.NUMERO_UNIDADE = dtRdr["numerounidade"].ToString(); u.PRUMADA = dtRdr["prumada"].ToString(); u.STATUS_UNIDADE = dtRdr["statusunidade"].ToString(); u.CODIGO_UNIDADE = dtRdr["codigounidade"].ToString(); u.METRAGEM = dtRdr["metragem"].ToString(); u.VAGAS = dtRdr["vagas"].ToString(); u.REGIAO = dtRdr["regiao"].ToString(); u.PERMUTA_UNIDADE_SAP = dtRdr["permutaunidadesap"].ToString(); i++; andar2.Unidades.Add(u); } while (dtRdr.Read()); andar2.Unidades = andar2.Unidades.OrderByDescending(u => u.ANDAR).ToList(); torre2.Andares.Add(andar2); } while (i < table.Rows.Count); } ViewBag.Nome = torre2.Nome; ViewBag.Empreendimentos = torre2.Empreendimento; return View(torre2.Andares); }
as duas formas que eu tentei mas sem sucesso.
andar2.Unidades = andar2.Unidades.OrderByDescending(u => u.ANDAR).ToList();
dv.Sort = "andar Desc";
-
-
Welington, Obrigado eu consegui ordenar.
O problema era assim eu tenho um objeto torre dentro dela eu tenho um lista andar que tem um lista apartamentos. E eu precisava ordernar por andar, ele não estava respeitando. Porque o Andar repetia varias vezes ex: 1º andar tem o apartamento 101,102,103,104 que estava dentro de apartamentos.
Ai o que eu fiz eu criei uma propriedade dentro de torre pra recebe o andar ai eu cosegui ordernar, resumindo eu peguei a propriedade que estava dentro de um lista e trouxe para fora, onde tivesse controle dela para a ordenação.
Fica a dica e agradeço sua atenção.
Valeu!!
-
Ok. Nao esqueca de marca como resolvido.
att.
- Marcado como Resposta cleiton costa segunda-feira, 11 de junho de 2012 12:51