Novamente problema com jquery, ajax e bd
27/02/2014
0
[HttpPost] public JsonResult MontaMenuInferior() { AgaxturCmsEntities db = new AgaxturCmsEntities(); try { var resultado = (from c in db.TB_MENUSUPERIOR_CATEGORIAS join s in db.TB_MENUSUPERIOR_SUBCATEGORIAS on c.id equals (s.Id_Categoria) where c.Ativo == 1 && s.Ativo == 1 && s.CdCliente == 1 select new { c.id ,c.Categoria ,s.Id_Categoria ,s.SubCategoria }).ToList(); return Json(new { resultado }, JsonRequestBehavior.AllowGet); } catch (Exception ex) { return Json(new { resultado = ex.Message }, JsonRequestBehavior.AllowGet); } }
Agora minha jquery e o html que vai ser populado.
function MontaMenuInferior() { $.ajax({ url: '/Home/MontaMenuInferior', dataType: "json", contentType: "application/json; charset=utf-8", type: "POST", success: function (data) { $(data.resultado).each(function () { alert(this.id); if (this.Id == 2) { $("#americasul").append('<li><a href="#" title="' + this.Categoria + '" alt="" >' + this.Categoria + '</a></li>'); if (this.Id_Categoria == this.Id) { $("#americasul").append('<li><a href="#" title="' + this.SubCategoria + '" alt="" >' + this.SubCategoria + '</a></li>'); } } if (this.Id == 6) { alert(this.Id); $("#brasil").append('<li><a href="#" title="' + this.Categoria + '" alt="" >' + this.Categoria + '</a></li>'); if (this.Id_Categoria == this.Id) { $("#brasil").append('<li><a href="#" title="' + this.SubCategoria + '" alt="" >' + this.SubCategoria + '</a></li>'); } } }); }, error: function (error) { } }); }
Meu html
<ul class="grid_4" id="brasil"> </ul> <ul class="grid_4" id="americasul"> </ul>
Pjava
Posts
27/02/2014
Pjava
[HttpPost] public JsonResult MontaMenuInferior() { AgaxturCmsEntities db = new AgaxturCmsEntities(); try { var resultado = (from c in db.TB_MENUSUPERIOR_CATEGORIAS //join s in db.TB_MENUSUPERIOR_SUBCATEGORIAS on c.id equals (s.Id_Categoria) where c.Ativo == 1 select new { c.id ,c.Categoria ,sub = (from s in db.TB_MENUSUPERIOR_SUBCATEGORIAS where s.Id_Categoria == c.id && s.Ativo == 1 && s.CdCliente == 1 select new { s.Id_Categoria, s.SubCategoria }) ==>> NESSE PONTO NÃO SEI O QUE COLOCAR }).ToList(); return Json(new { resultado }, JsonRequestBehavior.AllowGet); } catch (Exception ex) { return Json(new { resultado = ex.Message }, JsonRequestBehavior.AllowGet); } }
27/02/2014
Murilo Teixeira
Você tem: MÃE => N FILHOS;
Então MÃE tem uma Lista de FILHOS.
public class TB_MENUSUPERIOR_SUBCATEGORIAS { public int Id_Categoria { get; set; } public int Ativo { get; set; } public int CdCliente { get; set; } } public class TB_MENUSUPERIOR_CATEGORIAS { public List<TB_MENUSUPERIOR_SUBCATEGORIAS> ListaFilho { get; set; } public int id { get; set; } public string Categoria { get; set; } public int Ativo { get; set; } } public void Carregar() { var listaMae = from c in db.TB_MENUSUPERIOR_CATEGORIAS where c.Ativo == 1 select new { c.id, c.Categoria, }.ToList(); foreach (var mae in listaMae) { mae.ListaFilho = from s in db.TB_MENUSUPERIOR_SUBCATEGORIAS where mae.id = s.Id_Categoria && s.Ativo == 1 && s.CdCliente == 1 select new { s.Id_Categoria, s.SubCategoria }.ToList(); } }
No retorno do jquery vc terá dois foreach... o primeiro percorrendo o data.resultado adicionando o 1o elemento, ai fazendo o segundo foreach percorrendo o this.ListaFilho;
27/02/2014
Pjava
27/02/2014
Murilo Teixeira
[HttpPost] public JsonResult MontaMenuInferior() { AgaxturCmsEntities db = new AgaxturCmsEntities(); try { var resultado = from c in db.TB_MENUSUPERIOR_CATEGORIAS where c.Ativo == 1 select new { c.id, c.Categoria, ListaSubMenu = from s in db.TB_MENUSUPERIOR_SUBCATEGORIAS where c.id = s.Id_Categoria && s.Ativo == 1 && s.CdCliente == 1 select new { s.Id_Categoria, s.SubCategoria }.ToList(), }.ToList(); return Json(new { resultado }, JsonRequestBehavior.AllowGet); } catch (Exception ex) { return Json(new { resultado = ex.Message }, JsonRequestBehavior.AllowGet); } }
28/02/2014
Pjava
function MontaMenuInferior() { var str = ""; $.ajax({ url: '/Home/MontaMenuInferior', dataType: "json", contentType: "application/json; charset=utf-8", type: "POST", success: function (data) { $(data.resultado).each(function () { str = str + '<ul class="grid_4">' + '<li>' + this.Categoria + '</li>'; $(this.subconsulta).each(function () { str = str + '<li><a href="#" title="">' + this.SubCategoria + '</a></li>'; }); str = str + '</ul>'; $('#menufooter').append(str); str = ""; }); }, error: function (error) { } }); }
Clique aqui para fazer login e interagir na Comunidade :)