Usuário com melhor resposta
GridView MVC

Pergunta
-
Olá para todos, andei pesquisando na internet sobre usar GridView no framework MVC e achei 2 pessoas dizendo que utilizar GridView no MVC seria péssimo. Fontes:
"The GridView (except for basic rendering) will not work with ASP.NET MVC because of their dependence on ViewState & PostBack."
http://forums.asp.net/t/1216861.aspx"Aconselho vc a não utilizar os componentes do WebForms com ASP.NET MVC, pode até funcionar, mas de forma "capenga", pois o ASP.NET MVC não tem suporte ao ViewState e nem ao "PostBack", e esses controles usam fortemente esses itens. "
http://social.msdn.microsoft.com/Forums/pt-BR/aspnetpt/thread/0af7c182-a1e9-4694-ac2f-43fc990a0652/
Porém esses dois posts foram feitos em 2008.
Alguem pode me confirmar se essas informações são verídicas ainda?
Obrigado.
Respostas
-
Fala mkoka,
100% verídico!
Realmente o MVC não tem o suporte a ViewState e PostBack.
Assim, todos aqueles eventos do GridView não serão funcionais.
Você pode até usar, mas com essas limitações.
Além disso, para fazer o DataBind na GridView, você terá que colocar na sua View uma tag <script>, ou então criar um aspx com codebehind...
Aí que mora o "perigo"... Você pode começar a ficar tentado a colocar "inteligência" na sua view.
Forte abraço,
André Borges Medeiros
MCPD, MCT
>> Se a resposta solucionar sua dúvida, favor Votar como Útil- Marcado como Resposta mkoka quinta-feira, 29 de outubro de 2009 16:54
-
Caro mkoka,
Então... eu não testei, mas provavelmente funcionaria...
Para o que você quer, você precisaria tratar o evento RowDataBound , que é invocado para cada linha do seu gridview, no momento em que você fizer o DataBind.
Então, no evento RowDataBound , você "captura" a célula e "insere" a partial view. Porém, mais uma vez, esse evento RowDataBound terá que ser tratado no codebehind...
Forte abraço,
André Borges Medeiros
MCPD, MCT
>> Se a resposta solucionar sua dúvida, favor Votar como Útil- Marcado como Resposta mkoka quinta-feira, 29 de outubro de 2009 18:16
Todas as Respostas
-
Fala mkoka,
100% verídico!
Realmente o MVC não tem o suporte a ViewState e PostBack.
Assim, todos aqueles eventos do GridView não serão funcionais.
Você pode até usar, mas com essas limitações.
Além disso, para fazer o DataBind na GridView, você terá que colocar na sua View uma tag <script>, ou então criar um aspx com codebehind...
Aí que mora o "perigo"... Você pode começar a ficar tentado a colocar "inteligência" na sua view.
Forte abraço,
André Borges Medeiros
MCPD, MCT
>> Se a resposta solucionar sua dúvida, favor Votar como Útil- Marcado como Resposta mkoka quinta-feira, 29 de outubro de 2009 16:54
-
Muito obrigado pela confirmação André. Eu pretendia usar o GridView somente para mostrar dados a partir de uma lista de objetos. eu havia criado uma partial view para imprimir os detalhes dos objetos e dae pretendia para cada célula da gridview, inserir a partial view. Sabe me dizer se para essa funcionalidade funcionaria? Eu não sei muito sobre GridView, por isso nem sei se tem como inserir partial view nas células :D
-
Caro mkoka,
Então... eu não testei, mas provavelmente funcionaria...
Para o que você quer, você precisaria tratar o evento RowDataBound , que é invocado para cada linha do seu gridview, no momento em que você fizer o DataBind.
Então, no evento RowDataBound , você "captura" a célula e "insere" a partial view. Porém, mais uma vez, esse evento RowDataBound terá que ser tratado no codebehind...
Forte abraço,
André Borges Medeiros
MCPD, MCT
>> Se a resposta solucionar sua dúvida, favor Votar como Útil- Marcado como Resposta mkoka quinta-feira, 29 de outubro de 2009 18:16