Re: [.Net - BR] Armazenar uma lista de objetos dinamicamente em uma tela de cadastro

215 views
Skip to first unread message
Message has been deleted

Renato Cantarino

unread,
Feb 10, 2016, 6:52:01 PM2/10/16
to dotn...@googlegroups.com
Isso e facilmente implantação com session, mas e fortemente desaconselhando. 

Em quarta-feira, 10 de fevereiro de 2016, Moacir <moa...@mck2.com.br> escreveu:

Prezados,


Estou entrando agora na área web com C#, estou vindo de outras linguagens, me deparei com um probleminha que gostaria de saber com ajuda e experiência de vocês qual seria a melhor maneira de fazer o que preciso.

Meu problema é... até o momento em que o operador clicar no botão "+", eu ainda não possuo dados persistidos no banco, e preciso armazenar isso em tela, pois os dados serão inseridos na base de dados apenas no momento em que o operador clicar em "Cadastrar", ou seja, a minha ideia eh montar o objeto cliente onde os telefones, emails e etc serão serializados "List<>". Mas como deverá ser feita a interação da tela? inserir uma linha dinamicamente nessa tabela de telefones? Para que só quando eu clicar em cadastrar eu monte o objeto com as informações da tela. Essa lista deverá ser controlada apenas pela interface Razor (html) ou devo fazer um em ajax na camada controller?

Agradeço desde já.




--
==============================
Comunidade de desenvolvedores Dot Net no Brasil
 
Facebook: www.facebook.com/grupodotnetbr
 
WebSite: www.dotnetbr.com
 
E-mail do Grupo: dotn...@googlegroups.com
==============================
---
You received this message because you are subscribed to the Google Groups "DotNet Brasil" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dotnet_br+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


--

Att,
Renato Cantarino


Message has been deleted

Vinícius Ribeiro

unread,
Mar 31, 2016, 8:05:40 PM3/31/16
to dotn...@googlegroups.com
Não sei se entendi bem a sua dúvida... mas vamos lá!

Se a questão for a de ler dados no cliente e envio destes dados para o servidor, uma forma de se fazer (sem framework JS específicos de binding) seria serializar o mestre-detalhe e envio tardio para o controller, ou seja, quando o usuário clicar no botão "Cadastrar" você popularia um array de json e enviaria via post para o controller, passando esta estrutura por parâmetro via String ou já tipado. 
Com relação ao detalhe você poderia usar estruturas html sendo manipulada (CRUD) via JS (jquery por exemplo)  ou um componente grid completo (jqgrid por exemplo). 
 

Atenciosamente,

    Vinícius Ribeiro
    Nome Skype: vinicius-alicersis
    (32) 98877-8313 | 4141-1410

Paulo S. M. Marques

unread,
Apr 1, 2016, 1:56:25 PM4/1/16
to dotn...@googlegroups.com
Você ta usando WebForms ou MVC?

Se for no webforms, dá pra armazenar/recuperar no ViewState (use com cuidado), basta a entidade estar marcada como serializable.

Não é aconselhado usar Session, principalmente, se sua APP for rodar na nuvem (stateless).

--
Atenciosamente,

Paulo S. M. Marques

Moacir Carlos Kurmann

unread,
Apr 1, 2016, 2:12:44 PM4/1/16
to dotn...@googlegroups.com
MVC.

Vou fazer essa dinâmica em javascript mesmo.
Moacir Carlos Kurmann
(61)9274-4719
(61)8551-6659

Vinicius Perroni

unread,
Apr 1, 2016, 2:19:27 PM4/1/16
to DotNet Brasil
Pessoal é muito feio adicionar um campo hidden a cada novo contato criado?

Depois envia tudo e recebe como um array de contatos, eu faria assim.
Vinicius Perroni

Renato Cantarino

unread,
Apr 1, 2016, 2:20:20 PM4/1/16
to dotn...@googlegroups.com
Dá um post Json e guarda isso.

Att,
Renato Cantarino

Paulo S. M. Marques

unread,
Apr 4, 2016, 8:42:13 AM4/4/16
to dotn...@googlegroups.com
Uma pequena sugestão aqui, se você criar os inputs em runtime, acho que não precisa fazer nada.. 
Dá pra recuperar o part key/value no objeto Request.Form.

[Off]
Por essas e outras penso que o WebForms nunca morrerá...
Muita gente fica "reinventando a roda" de "várias formas" para no final implementar coisas que já existiam há séculos...
[/Off]


Ronan Muller MarquesMota

unread,
Apr 4, 2016, 8:44:58 AM4/4/16
to dotn...@googlegroups.com
Porque o Web Forms deveria morrer? 80% do mundo web Microsoft é implementado assim...

Renato Cantarino

unread,
Apr 4, 2016, 8:50:18 AM4/4/16
to dotn...@googlegroups.com
Cara, vcs já viram as ultimas atualizações do webForms?
Mais performático, com muitas melhorias.
Ta certo que o modo que foi feito não morrerá, mas...

Ronan Muller MarquesMota

unread,
Apr 4, 2016, 8:54:08 AM4/4/16
to dotn...@googlegroups.com
Sem entrar no mérito da arquitetura.. mas webforms é tipo o produto de prateleira da Microsoft...MVC é pra quem deseja entender o que ta fazendo...o que o webforms infelizmente não deixa muito....

Renato Cantarino

unread,
Apr 4, 2016, 8:58:41 AM4/4/16
to dotn...@googlegroups.com
Ronan, você poderia nos falar dessas coisas?

Ronan Muller MarquesMota

unread,
Apr 4, 2016, 9:06:33 AM4/4/16
to dotn...@googlegroups.com
O que vc quer saber?

Renato Cantarino

unread,
Apr 4, 2016, 9:08:34 AM4/4/16
to dotn...@googlegroups.com
"..MVC é pra quem deseja entender o que ta fazendo...o que o webforms infelizmente não deixa muito...."
Quero saber oq vc quer fazer e o webForms nao te deixa.

Paulo S. M. Marques

unread,
Apr 4, 2016, 9:14:54 AM4/4/16
to dotn...@googlegroups.com
Acho que me expressei mal... não sou a favor da morte do WebForms, pelo contrário... utilizo até hoje nos projetos e acho muito mais produtivo, seja por uso de componentes, seja por outras facilidades e anos de maturidade...

MVC pra mim é só pra quem deseja "punhetar" HTML, ter controle minucioso do que é escrito pro browser interpretar... 
Não que isso não seja possível no webforms, basta entender um pouco de orientação (sim, você pode herdar de um textbox e sobrecarregar alguns métodos criando o seu proprio) a objetos e conhecer a API...

MVC também tem lá suas vantagens (separação model view controller, partial views, render, etc) que não vou entrar no mérito aqui...

Ronan Muller MarquesMota

unread,
Apr 4, 2016, 9:15:12 AM4/4/16
to dotn...@googlegroups.com
Não foi isso que eu quis dizer.. eu quis dizer que o webforms faz mais abstraído e encapsulado em componentes que o MVC. Então provavelmente deve ter acontecido o mesmo com vários de vcs.. quando foram apresentados a programação apresentam o Web forms.. onde vc escreve scripts na maioria das vezes ridículos.. não tem a menor noção do que e um post back/ round trip, sessões, view state e outras tristezas mas usa igual um louco e depois de um tempo quando vc começa a entender realmente a arquitetura web no geral.. o asp.net mvc faz todo sentido do mundo. Foi isso que eu quis dizer e essa é minha opinião.

Ronan Muller MarquesMota

unread,
Apr 4, 2016, 9:16:14 AM4/4/16
to dotn...@googlegroups.com
@Paulo S. M. Marques
Concordo!!

Gustavo Cruz

unread,
Apr 4, 2016, 4:24:41 PM4/4/16
to dotn...@googlegroups.com
MVC pra mim é só pra quem deseja "punhetar" HTML

Defina "punhetar" HTML. Porque, ao menos pra mim, se para trocar a cor de uma linha do grid baseado em uma condição eu ter que declarar um evento server side (RowDataBound) é no mínimo BEM mais complicado do que "punhetar" o HTML. Com Razor vc faz isso com 2 linhas: IF e ELSE. Com angular e outros frameworks JS vc faz com um atributo na sua tag.

E outra: o ambiente final do seu sistema é o browser. O browser trabalha com HTML. Seu campo de futebol é HTML, CSS e Javascript. É o que ele entende. Se isso fosse meia verdade, a Microsoft não estaria investindo tão pesado nessas tecnologias.

Deixo claro que não sou contra o webforms. Ainda tem muito mercado. Mas dificilmente, HOJE, usaria para projetos de grande porte, exatamente porque é tudo abstraído e querendo ou não, perde-se em controle. 


Paulo S. M. Marques

unread,
Apr 4, 2016, 8:50:52 PM4/4/16
to dotn...@googlegroups.com

Gustavo, faco isso com apenas uma propriedade no gridview...
Se quiser ainda usar uma flags personalizadas, você pode fazer um itemtemplate... Etc...

Por isso webforms é mal visto... Muita gente faz as coisas da maneira errada

Att.

Paulo S. M. Marques

Gustavo Cruz

unread,
Apr 5, 2016, 7:18:45 AM4/5/16
to dotn...@googlegroups.com
Qual propriedade?

Até onde eu sei, se a condição for complexa, por default não é possível. 
Tem que meter a mão no code-behind de qualquer jeito. E ItemTemplate não faz milagre.

Paulo S. M. Marques

unread,
Apr 5, 2016, 2:22:42 PM4/5/16
to dotn...@googlegroups.com
Odd e Even não preciso exemplificar no RowStyle certo?

<asp:gridview id="CustomersGridView" runat="server">        
    <RowStyle CssClass="Row" />
    <AlternatingRowStyle CssClass="AltRow" />
</asp:gridview>

Dentro do item template você pode usar '<%# if ternário, condição, expressão, etc %>':

<asp:Label ID="Label1" runat="server" Text= "Is Available" Visible = '<%# (bool)Eval("IsOnline") %>'></asp:Label>

Eu preciso mesmo fazer um exemplo pra você ver um if ternário pra alterar um CssClass?

ItemTempalte não resolve se você for fazer gambiarra na tela... Não separando as regras de negócio em outra camada.. Mas isso aí é um outro ponto que não estamos na thread certa..




Gustavo Cruz

unread,
Apr 5, 2016, 3:35:03 PM4/5/16
to dotn...@googlegroups.com
Odd e even se resolve no CSS, isso é básico do básico.

If ternário não resolve meu problema ;-). If ternário não é condição complexa. Nunca foi.
E não, o fato de eu ter um comportamento complexo na minha view não tem absolutamente nada a ver com meu business estar bem ou não separado. PODE até ser um bad smell, mas já me deparei com inúmeras situações onde não tinha nenhuma ligação com uma arquitetura ruim. Nem tudo na vida é CRUD master/detail.

Mas enfim, como disse, não estou aqui pra defender um nem outro, até mesmo porque não utilizo nenhum dos dois no momento. Cada um com seu objetivo. WebForms tem seus prós e contras, assim como MVC tem.


Paulo S. M. Marques

unread,
Apr 5, 2016, 4:48:41 PM4/5/16
to dotn...@googlegroups.com
Gustavo,

Em relação ao if ternário, você pode escrever outras condições ali também, inclusive chamar um método estático (não recomendaria isso, pois é programação em tela pra mim... não vou entrar no mérito cabe outra thread).

Não vejo o que não resolver com o esquema de ItemTemplate e uma DTO para apresentação dos dados bem projetada (com propriedades indicativas como p.e. VisivelEmTela, PermissaoAlterar, etc). Trabalhando assim, além de reduzir o acoplamento com a UI, fica até mais performático.

Trabalho num ERP (WebForms) de mais de 120 mil linhas de código e estamos verificando a real possibilidade de migrar pra MVC ou outra plataforma UI, o que não vai ser tarefa dificil pois temos um baixo acoplamento devido a arquitetura.





Reply all
Reply to author
Forward
0 new messages