Usuário com melhor resposta
Carregar Valor do banco no DropDownList

Pergunta
-
Boa tarde,
Como faço para carregar o valor de uma coluna no DropDowList. Tentei da seguinte Maneira
Quando eu clicar no botão editar ele puxar do banco a coluna correspondete a do Grid
No GridView2_RowCommand
if (e.CommandName.Equals("editModalInferior")) { LimparTextBoxInferior(); index = Convert.ToInt32(e.CommandArgument); GridViewRow gvrow = GridView2.Rows[index]; lblIdInferior.Text = HttpUtility.HtmlDecode(gvrow.Cells[2].Text).ToString(); //Passa o valor para do Id para label Id txtInputCodigoFerramentaEditar.Value = HttpUtility.HtmlDecode(gvrow.Cells[3].Text); txtInputDiametroMinEditar.Value = HttpUtility.HtmlDecode(gvrow.Cells[4].Text); txtInputDiametroMaxEditar.Value = HttpUtility.HtmlDecode(gvrow.Cells[5].Text); ObjFerramenta.Id = Convert.ToInt32(lblIdInferior.Text); Ferramenta objClasses = objFerramentasDAO.cboCodigoFerramentaEditar(ObjFerramenta); cboFerramentaEditar.SelectedValue = objClasses.Ferramenta_str.ToString().Trim(); ErroFalseInferior(); ScriptManager.RegisterStartupScript(this, this.GetType(), "LaunchServerSide", "$(function() { abrirJanelaModalEditarInferior(); });", true); }
public Ferramenta cboCodigoFerramentaEditar(Ferramenta cadastro) { string query = ""; string resp = ""; try { query += " SELECT tb_ferramentas.ferramenta_str FROM tb_ferramentas INNER JOIN tb_conjuntoferramentas ON tb_ferramentas.idferramenta_int = tb_conjuntoferramentas.idferramenta_int_fk WHERE idconjuntoferramentas_int = @ID "; //Abra a conexão c.conectar(); MySqlCommand cd = new MySqlCommand(); cd.Connection = c.cn; cd.CommandText = query; cd.Parameters.AddWithValue("@ID", cadastro.Id); MySqlDataReader rdr = cd.ExecuteReader(); while (rdr.Read()) { // ddlGender.SelectedValue = rdr["Gender"].ToString(); objFerramenta.Ferramenta_str = rdr["ferramenta_str"].ToString(); } } catch (Exception error) { resp = "" + error; } finally { if (c.cn.State == ConnectionState.Open) c.desconectar(); } return objFerramenta; }
Aspx
<asp:GridView ID="GridView2" runat="server" HorizontalAlign="Center" OnRowCommand="GridView2_RowCommand" AutoGenerateColumns="false" AllowPaging="true" DataKeyNames="idconjuntoferramentas_int" CssClass="table table-striped table-bordered table-hover table-condensed table-responsive" AllowSorting="True" OnPageIndexChanging="GridView2_PageIndexChanging" PagerSettings-Mode="NextPreviousFirstLast" PageSize="10" OnRowDataBound="GridView2_RowDataBound" OnSorting="GridView2_Sorting" UseAccessibleHeader="true"> <Columns> <asp:ButtonField CommandName="editModalInferior" ControlStyle-CssClass="btn btn-info" ButtonType="Button" Text="Editar" HeaderText="" HeaderStyle-HorizontalAlign="Center" HeaderStyle-VerticalAlign="Middle" ItemStyle-VerticalAlign="Middle" ItemStyle-HorizontalAlign="Center"> <ControlStyle CssClass="btn btn-info col-sm-10 col-md-10 col-lg-10 btn-xs fonteDez"></ControlStyle> <HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" CssClass="col-sm-1 col-md-1 col-lg-1" /> <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" /> </asp:ButtonField> <asp:ButtonField CommandName="deleteModalInferior" ControlStyle-CssClass="btn btn-danger" ButtonType="Button" Text="Deletar" HeaderText="" HeaderStyle-HorizontalAlign="Center" HeaderStyle-VerticalAlign="Middle" ItemStyle-VerticalAlign="Middle" ItemStyle-HorizontalAlign="Center"> <ControlStyle CssClass="btn btn-danger col-sm-10 col-md-10 col-lg-10 btn-xs fonteDez"></ControlStyle> <HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" CssClass="col-sm-1 col-md-1 col-lg-1" /> <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" /> </asp:ButtonField> <asp:BoundField DataField="idconjuntoferramentas_int" HeaderText="Id" ItemStyle-HorizontalAlign="Center" ItemStyle-VerticalAlign="Middle" SortExpression="idconjuntoferramentas_int"> <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" CssClass="col-sm-1 col-md-1 col-lg-1 fonteDez" /> </asp:BoundField> <asp:BoundField DataField="codigoferramenta_str" HeaderText="Cód. Ferr." ItemStyle-HorizontalAlign="Center" ItemStyle-VerticalAlign="Middle" SortExpression="codigoferramenta_str"> <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" CssClass="fonteDez" /> </asp:BoundField> <asp:BoundField DataField="diametromin_dec" HeaderText="Diam. Mín." ItemStyle-HorizontalAlign="Center" ItemStyle-VerticalAlign="Middle" SortExpression="diametromin_dec"> <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" CssClass="fonteDez" /> </asp:BoundField> <asp:BoundField DataField="diametromax_dec" HeaderText="Diam. Máx." ItemStyle-HorizontalAlign="Center" ItemStyle-VerticalAlign="Middle" SortExpression="diametromax_dec"> <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" CssClass="fonteDez" /> </asp:BoundField> <asp:ButtonField CommandName="desenhoRecord" ControlStyle-CssClass="btn btn-default" ButtonType="Button" Text="D" HeaderText="Desenho" HeaderStyle-HorizontalAlign="Center" HeaderStyle-VerticalAlign="Middle" ItemStyle-VerticalAlign="Middle" ItemStyle-HorizontalAlign="Center"> <ControlStyle CssClass="btn btn-default btn-xs fonteDez"></ControlStyle> <HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" /> <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" /> </asp:ButtonField> <asp:BoundField DataField="datacadastro_dt" HeaderText="Data Cadastro" ItemStyle-HorizontalAlign="Center" ItemStyle-VerticalAlign="Middle" DataFormatString="{0:d}" HeaderStyle-HorizontalAlign="Center" HeaderStyle-VerticalAlign="Middle" SortExpression="datacadastro_dt"> <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" CssClass="fonteDez" /> </asp:BoundField> </Columns> <PagerSettings FirstPageImageUrl="~/img/Botoes/first.png" LastPageImageUrl="~/img/Botoes/last.png" Mode="NextPreviousFirstLast" NextPageImageUrl="~/img/Botoes/next.png" PreviousPageImageUrl="~/img/Botoes/previous.png" /> <PagerStyle Font-Size="X-Small" Font-Strikeout="False" HorizontalAlign="Center" CssClass="espacoBotoes" VerticalAlign="Middle" /> </asp:GridView>
Esta dando o seguinte erro:
Mas quando debugo e também quando carrego ele no banco de dados, existe sim esse valor
- Editado gelson_ventura segunda-feira, 10 de julho de 2017 19:45
Respostas
-
É o que eu suspeitava. Os valores da tua DDL são os ids das ferramentas, mas você está tentando atribuir o valor '2ª matriz' ao SelectedValue.
cboFerramentaEditar.SelectedValue = objClasses.Ferramenta_str.ToString().Trim();
Faça algo como:
cboFerramentaEditar.SelectedValue = objClasses.FerramentaId;
ATT
- Editado Aristides Darlan Peiter Tondolo quarta-feira, 12 de julho de 2017 22:12
- Marcado como Resposta Filipe B CastroModerator segunda-feira, 17 de julho de 2017 13:03
Todas as Respostas
-
-
cboFerramentaEditar.SelectedValue = objClasses.Ferramenta_str.ToString().Trim();
Pelo que pude perceber você está tentando selecionar '2ª matriz' para o valor (SelectedValue) da DDL, quando na verdade ele é apenas o texto de exibição (DisplayMember) do membro que você deseja selecionar.
Se puder, poste o trecho de código onde você popula a DDL.ATT
-
<div class="col-xs-10 col-sm-10 col-md-10 col-lg-10"> <div class="form-group"> <label for="text">*Ferramenta:</label> <asp:DropDownList ID="cboFerramenta" runat="server" CssClass="form-control text-center" DataSourceID="SqlDataSourceFerramenta" DataTextField="ferramenta_str" DataValueField="idferramenta_int"> </asp:DropDownList> <asp:SqlDataSource runat="server" ID="SqlDataSourceFerramenta" ConnectionString='<%$ ConnectionStrings:ConnectionString %>' ProviderName='<%$ ConnectionStrings:ConnectionString.ProviderName %>' SelectCommand="SELECT idferramenta_int, ferramenta_str FROM bancoferramenta.tb_ferramentas"></asp:SqlDataSource> </div> </div>
-
É o que eu suspeitava. Os valores da tua DDL são os ids das ferramentas, mas você está tentando atribuir o valor '2ª matriz' ao SelectedValue.
cboFerramentaEditar.SelectedValue = objClasses.Ferramenta_str.ToString().Trim();
Faça algo como:
cboFerramentaEditar.SelectedValue = objClasses.FerramentaId;
ATT
- Editado Aristides Darlan Peiter Tondolo quarta-feira, 12 de julho de 2017 22:12
- Marcado como Resposta Filipe B CastroModerator segunda-feira, 17 de julho de 2017 13:03
-
Bom dia,
Por falta de retorno, essa thread está sendo encerrada.
Se necessário, favor abrir uma nova thread.
Atenciosamente,Filipe B de Castro
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
É o que eu suspeitava. Os valores da tua DDL são os ids das ferramentas, mas você está tentando atribuir o valor '2ª matriz' ao SelectedValue.
cboFerramentaEditar.SelectedValue = objClasses.Ferramenta_str.ToString().Trim();
Faça algo como:
cboFerramentaEditar.SelectedValue = objClasses.FerramentaId;
ATT
Isso mesmo amigo. Fiquei sem internet por um tempo, por isso não respondi.
Muito obrigado adpeiter