Usuário com melhor resposta
Criar Helper para somar um determinado campo EF dinamicamente

Pergunta
-
Bom dia.
Em minhas views faço as tabelas com tag Table normalmente e uso o JQuery DataTables para dar uma incrementada, e fica muito bom!
Agora nas views eu preciso por uns totalizadores (esqueci em todos. são 20 views..que droga cara..).
Eu não gostaria de ficar somando determinados campos. Então gostaria de fazer um Helper tipo assim:
@Html.Totalizador(Model.Itens, "ValorCheque")
O nome do campo seria dinâmico pois cada view teria o seu, e este helper iria imprimir um quadro bonitinho. Já pesquisei como poderia fazer isso mas não achei nada.
Alguém pode me ajudar? Vlw obrigado!
Respostas
-
Dentro do seu model, na sua classe do EF, você pode criar um campo que faça isso, e que não seja mapeado no banco de dados. Exemplo:
public class MinhaClasse { public int Valor1 { get; set; } public int Valor2 { get; set; } [NotMapped] public int ValoresSomados { get { return Valor1 + Valor2; } } }
Ao infinito e além!
- Sugerido como Resposta João_ PradoModerator quinta-feira, 20 de junho de 2013 16:56
- Marcado como Resposta welington jrModerator segunda-feira, 5 de março de 2018 11:43
Todas as Respostas
-
Romulo,
bom dia.
Um começo para você.
O helper:
public static class TotalizadorHelper { public static IHtmlString Totalizador<TSource>(this List<TSource> source, string id) { int iTotal = source.Count; var tag = new TagBuilder("div"); tag.GenerateId(id); tag.InnerHtml = iTotal.ToString(); return new HtmlString(tag.ToString()); } }
A chamada:
@TotalizadorHelper.Totalizador(lista, "total")
Att.,
Wanderson de Paula
-
Dentro do seu model, na sua classe do EF, você pode criar um campo que faça isso, e que não seja mapeado no banco de dados. Exemplo:
public class MinhaClasse { public int Valor1 { get; set; } public int Valor2 { get; set; } [NotMapped] public int ValoresSomados { get { return Valor1 + Valor2; } } }
Ao infinito e além!
- Sugerido como Resposta João_ PradoModerator quinta-feira, 20 de junho de 2013 16:56
- Marcado como Resposta welington jrModerator segunda-feira, 5 de março de 2018 11:43