Usuário com melhor resposta
DropDownList relacionado.

Pergunta
-
Olá.
Estou usando um DetailsView com 3º DropDownList relacionados (Chave Estrangeira) e estou com problemas ao alterar um DropDownList.
Não posso usar Eval porque é inserção.
Esta dando o Erro:Databinding methods such as Eval(), XPath(), and Bind() can only be used in the context of a databound control.
Pelo que eu entendi no link abaixo, eu preciso povoar o DropDownList manualmente. Aqui fala para fazer isso no RowDataBound, mas o DetailsView não possui esse evento.
Segue meu código:
<InsertItemTemplate> <asp:DropDownList ID="Ddl2Atend" runat="server" DataSourceID="SqlDs2Atend" DataTextField="descricao_visita2" DataValueField="codvisita2" Height="22px" SelectedValue='<%# Bind(Container.DataItem,"CODVISITA2") %>' Width="200px" AutoPostBack="True" > </asp:DropDownList> <asp:SqlDataSource ID="SqlDs2Atend" runat="server" ConnectionString="<%$ ConnectionStrings:fm3ConnectionString1 %>" SelectCommand="SELECT DISTINCT [codvisita1], [codvisita2], [descricao_visita2] FROM [SKTICC_CadVisita2] WHERE ([codvisita1] = @codvisita1) ORDER BY [descricao_visita2]" DataSourceMode="DataSet"> <SelectParameters> <asp:ControlParameter ControlID="Ddl1Atend" Name="codvisita1" PropertyName="SelectedValue" Type="Int32" /> </SelectParameters> </asp:SqlDataSource> </InsertItemTemplate>
Alguém pode me ajudar, por favor.
Grato.- Editado Fabrício MD quinta-feira, 12 de setembro de 2013 15:24
Respostas
-
Fala Fabrício blz.
Eu achei alguns links sobre seu problema, acho que algum deles possa te ajudar.
http://stackoverflow.com/questions/2700028/binding-a-dropdownlist-inside-a-detailsview
http://forums.asp.net/t/1071690.aspx
http://csharpdotnetfreak.blogspot.com/2011/12/detailsview-edititemtemplate-dropdown.html
Espero que possa te ajudar com o seu problema.
Caso ajude não se esqueça de marcar.
- Marcado como Resposta Giovani CrModerator quarta-feira, 9 de outubro de 2013 15:15
Todas as Respostas
-
Fabrício, uma boa prática é você separar Html de códigos que podem ser acessados pelo servidor.
Tente utilizar apenas os itens Html, retirando assim o seu Select, efetue esse select no code behind, feito isso com o seu retorno você pode popular um List e efetuar o bind() no seu dropDownList.
Achei alguns links.
http://p2p.wrox.com/asp-net-3-5-professionals/80196-using-sqldatasource-dropdownlist-box.html
Espero ter ajudado.
-
-
Vou tentar te orientar melhor então cara.
Eu faria separado esse código.
Mas como assim separado? Eu iria acessar o banco de dados através do meu codeBehind, após acessar o banco de dados Fabrício eu iria popular um DataTable com o seu retorno, ai sim eu iria efetuar o bind na grid.
No evento RowDataBound da grid que é responsável por carregar as linhas e colunas, ai sim eu iria efetuar o carregamento da minha combo, tendo em vista que esse eventos se porta como um "for" carregando linhas por linha.
http://msdn.microsoft.com/pt-br/library/cc580581.aspx
Acho que você já terá uma base para resolver cara.
Qualquer coisa so falar.
-
-
-
Fala Fabrício blz.
Eu achei alguns links sobre seu problema, acho que algum deles possa te ajudar.
http://stackoverflow.com/questions/2700028/binding-a-dropdownlist-inside-a-detailsview
http://forums.asp.net/t/1071690.aspx
http://csharpdotnetfreak.blogspot.com/2011/12/detailsview-edititemtemplate-dropdown.html
Espero que possa te ajudar com o seu problema.
Caso ajude não se esqueça de marcar.
- Marcado como Resposta Giovani CrModerator quarta-feira, 9 de outubro de 2013 15:15