none
DropDowlnist Selecionar Index RRS feed

  • Pergunta

  • Tenho um ddl  que carrega o ano e semana , como no exemplo abaixo 

    Gostaria de saber como deixar posicionado mediante condicao abaixo.

    Ou seja se no banco tiver um flag selecionar no ddl.

    Obrigado.

    SqlCommand cmd = new SqlCommand("Sp_OP_Semanas_Processadas", Conexao);

                

                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@exec", "SEL");
                cmd.Parameters.AddWithValue("@procedimento", 15);
                cmd.Parameters.AddWithValue("@Cd_Empresa", Session["cd_empresa"].ToString());
                cmd.Parameters.AddWithValue("@MIGRACAO", 1);


                DataSet ds = new DataSet();
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                da.Fill(ds);
                DataTable dt = ds.Tables[0];


                for (int i = 0; i < dt.Rows.Count; i++)
                {


                    dropConsulta.Items.Add(new ListItem("Semana" + " " + dt.Rows[i]["nr_semana_credito"].ToString() + " " + " - " + "Ano" + " " + dt.Rows[i]["nr_ano_credito"].ToString() + " "));
                }

    // Monta ultima semana processada
                foreach (DataRow row in ds.Tables[0].Rows)
                {




                    int lgProcessada = Convert.ToInt16(row["Lg_Processada"]);
                    string Lg_Liberar_Emissao_Extrato = row["Lg_Liberar_Emissao_Extrato"].ToString();
                    
                    if (lgProcessada == 1 && Lg_Liberar_Emissao_Extrato == "False")
                    {
                        


                        SELECIONAR O ITEM NO DDL AQUI.


                    }
                
                
                }


    • Editado _Manigold_ sexta-feira, 24 de fevereiro de 2012 10:55
    sexta-feira, 24 de fevereiro de 2012 10:54

Respostas

  • SeuControle.SelectedValue = ds.Tables[0].Rows[0]["nome ou índice da coluna"].ToString();

    Fique atento ao Rows[0] pois é o índice da linha (row).

    Paulo César Viana
    .NET Developer
    MCC - Microsoft Community Contributor
    MCP - Microsoft Certified Professional
    MCTS - Microsoft Certified Technology Especialist
    --
    Marque as respostas e contribua para uma melhora no fórum.

    • Marcado como Resposta _Manigold_ sexta-feira, 24 de fevereiro de 2012 12:47
    sexta-feira, 24 de fevereiro de 2012 11:13
  • Manigoldo,

    Aquela thread do GridView sem resultado ainda está aberta. Depois marca a(s) resposta(s) que foram úteis, blz?

    http://social.msdn.microsoft.com/Forums/pt-BR/504/thread/b4b8bc67-a115-4501-bdd5-108186738a50


    Paulo César Viana
    .NET Developer
    MCC - Microsoft Community Contributor
    MCP - Microsoft Certified Professional
    MCTS - Microsoft Certified Technology Especialist
    --
    Marque as respostas e contribua para uma melhora no fórum.

    • Marcado como Resposta _Manigold_ sexta-feira, 24 de fevereiro de 2012 12:47
    sexta-feira, 24 de fevereiro de 2012 11:19
  • Segue um exemplo para você testar. 

    Eu vi que você não setou a propriedade Valeu do controle. Partindo do princípio que  Lg_Processada  e Lg_Liberar_Emissao_Extrato  não vai ser repetido, Eu peguei os valores de Lg_Processada e Lg_Liberar_Emissao_Extrato para setar na propriedade Value do controle.

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Untitled Page</title>    
    </head>
    <body>
        <form id="form1" runat="server">
            <div>
                <asp:DropDownList ID="DropDownList1" runat="server">
                </asp:DropDownList><br />
                <br />
                &nbsp;</div>
        </form>
    </body>
    </html>

    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.IO;
    using System.Collections.Generic;
    using System.Data;
    
    
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //Carregamento do DataSet
                DataSet ds = new DataSet();
                DataRow row;
                DataTable tbl = new DataTable();
                DataColumn Lg_Processada = new DataColumn("Lg_Processada");
                tbl.Columns.Add(Lg_Processada);
                DataColumn Lg_Liberar_Emissao_Extrato = new DataColumn("Lg_Liberar_Emissao_Extrato");
                tbl.Columns.Add(Lg_Liberar_Emissao_Extrato);
                DataColumn nr_semana_credito = new DataColumn("nr_semana_credito");
                tbl.Columns.Add(nr_semana_credito);
                DataColumn nr_ano_credito = new DataColumn("nr_ano_credito");
                tbl.Columns.Add(nr_ano_credito);
                
              
                row = tbl.NewRow();
                row["Lg_Processada"] = "2";
                row["Lg_Liberar_Emissao_Extrato"] = "True";
                row["nr_semana_credito"] = "1";
                row["nr_ano_credito"] = "2";
                tbl.Rows.Add(row);
    
                row = tbl.NewRow();
                row["Lg_Processada"] = "1";
                row["Lg_Liberar_Emissao_Extrato"] = "False";
                row["nr_semana_credito"] = "2";
                row["nr_ano_credito"] = "2";
                tbl.Rows.Add(row);
    
                row = tbl.NewRow();
                row["Lg_Processada"] = "4";
                row["Lg_Liberar_Emissao_Extrato"] = "False";
                row["nr_semana_credito"] = "3";
                row["nr_ano_credito"] = "2";
                tbl.Rows.Add(row);
    
                ds.Tables.Add(tbl);
                // Fim  Carregamento do DataSet
    
                ListItem item;
                string selecionado = string.Empty;
    
                foreach (DataRow rows in ds.Tables[0].Rows)
                {
                    //faz uma verificação para setar o selecionado
                    int lgProcessada = Int32.Parse(rows["Lg_Processada"].ToString());
                    string lgLiberarEmissaoExtrato = rows["Lg_Liberar_Emissao_Extrato"].ToString();
    
                    if (lgProcessada == 1 && lgLiberarEmissaoExtrato == "False")
                        selecionado = string.Format("{0}{1}", lgProcessada, lgLiberarEmissaoExtrato);
    
    
                    item = new ListItem();
                    item.Text = string.Format("Semana {0} Ano {1}", rows["nr_semana_credito"].ToString(), rows["nr_ano_credito"].ToString());
                    //Esta informação vai ser utilizada para setar o SelectedValue
                    item.Value = string.Format("{0}{1}", lgProcessada, lgLiberarEmissaoExtrato);
    
                    DropDownList1.Items.Add(item);               
                }
                DropDownList1.SelectedValue = selecionado;            
            }
        }
    }

    Leve em consideração apenas a partir do foreach (DataRow rows in ds.Tables[0].Rows) , pois o objeto você já tem carregado.

    Veja o resultado:


    Se você olhar o código é justamente a segunda linha do objeto.


    Paulo César Viana
    .NET Developer
    MCC - Microsoft Community Contributor
    MCP - Microsoft Certified Professional
    MCTS - Microsoft Certified Technology Especialist
    --
    Marque as respostas e contribua para uma melhora no fórum.


    • Editado Paulo César Viana sexta-feira, 24 de fevereiro de 2012 12:04
    • Marcado como Resposta _Manigold_ sexta-feira, 24 de fevereiro de 2012 12:47
    sexta-feira, 24 de fevereiro de 2012 12:02
  • O selectedValue que você quer é o que? Todo o texto que aparece no controle? Se for use seuControle.SelectedItem.Text

    Paulo César Viana
    .NET Developer
    MCC - Microsoft Community Contributor
    MCP - Microsoft Certified Professional
    MCTS - Microsoft Certified Technology Especialist
    --
    Marque as respostas e contribua para uma melhora no fórum.

    • Marcado como Resposta _Manigold_ sexta-feira, 24 de fevereiro de 2012 13:37
    sexta-feira, 24 de fevereiro de 2012 13:32

Todas as Respostas

  • SeuControle.SelectedValue = ds.Tables[0].Rows[0]["nome ou índice da coluna"].ToString();

    Fique atento ao Rows[0] pois é o índice da linha (row).

    Paulo César Viana
    .NET Developer
    MCC - Microsoft Community Contributor
    MCP - Microsoft Certified Professional
    MCTS - Microsoft Certified Technology Especialist
    --
    Marque as respostas e contribua para uma melhora no fórum.

    • Marcado como Resposta _Manigold_ sexta-feira, 24 de fevereiro de 2012 12:47
    sexta-feira, 24 de fevereiro de 2012 11:13
  • Blz meu rei, vou ver aqui, mas o foda é que esta concatenado.

    mas vamos ver.

    sexta-feira, 24 de fevereiro de 2012 11:14
  • Manigoldo,

    Aquela thread do GridView sem resultado ainda está aberta. Depois marca a(s) resposta(s) que foram úteis, blz?

    http://social.msdn.microsoft.com/Forums/pt-BR/504/thread/b4b8bc67-a115-4501-bdd5-108186738a50


    Paulo César Viana
    .NET Developer
    MCC - Microsoft Community Contributor
    MCP - Microsoft Certified Professional
    MCTS - Microsoft Certified Technology Especialist
    --
    Marque as respostas e contribua para uma melhora no fórum.

    • Marcado como Resposta _Manigold_ sexta-feira, 24 de fevereiro de 2012 12:47
    sexta-feira, 24 de fevereiro de 2012 11:19
  • Ola amigo nao deu certo, nao sei se fui claro, mas na duvida ta ai dinovo, eu preciso que apos  o preenchimento do ddl identificar e setar no ddl.

    Obrigado Paulo.

    sexta-feira, 24 de fevereiro de 2012 11:28
  • Desculpa, na correria acabei esquecendo ,mas esta marcado.

    Vlw.


    • Editado _Manigold_ sexta-feira, 24 de fevereiro de 2012 11:37
    sexta-feira, 24 de fevereiro de 2012 11:37
  • Segue um exemplo para você testar. 

    Eu vi que você não setou a propriedade Valeu do controle. Partindo do princípio que  Lg_Processada  e Lg_Liberar_Emissao_Extrato  não vai ser repetido, Eu peguei os valores de Lg_Processada e Lg_Liberar_Emissao_Extrato para setar na propriedade Value do controle.

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Untitled Page</title>    
    </head>
    <body>
        <form id="form1" runat="server">
            <div>
                <asp:DropDownList ID="DropDownList1" runat="server">
                </asp:DropDownList><br />
                <br />
                &nbsp;</div>
        </form>
    </body>
    </html>

    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.IO;
    using System.Collections.Generic;
    using System.Data;
    
    
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //Carregamento do DataSet
                DataSet ds = new DataSet();
                DataRow row;
                DataTable tbl = new DataTable();
                DataColumn Lg_Processada = new DataColumn("Lg_Processada");
                tbl.Columns.Add(Lg_Processada);
                DataColumn Lg_Liberar_Emissao_Extrato = new DataColumn("Lg_Liberar_Emissao_Extrato");
                tbl.Columns.Add(Lg_Liberar_Emissao_Extrato);
                DataColumn nr_semana_credito = new DataColumn("nr_semana_credito");
                tbl.Columns.Add(nr_semana_credito);
                DataColumn nr_ano_credito = new DataColumn("nr_ano_credito");
                tbl.Columns.Add(nr_ano_credito);
                
              
                row = tbl.NewRow();
                row["Lg_Processada"] = "2";
                row["Lg_Liberar_Emissao_Extrato"] = "True";
                row["nr_semana_credito"] = "1";
                row["nr_ano_credito"] = "2";
                tbl.Rows.Add(row);
    
                row = tbl.NewRow();
                row["Lg_Processada"] = "1";
                row["Lg_Liberar_Emissao_Extrato"] = "False";
                row["nr_semana_credito"] = "2";
                row["nr_ano_credito"] = "2";
                tbl.Rows.Add(row);
    
                row = tbl.NewRow();
                row["Lg_Processada"] = "4";
                row["Lg_Liberar_Emissao_Extrato"] = "False";
                row["nr_semana_credito"] = "3";
                row["nr_ano_credito"] = "2";
                tbl.Rows.Add(row);
    
                ds.Tables.Add(tbl);
                // Fim  Carregamento do DataSet
    
                ListItem item;
                string selecionado = string.Empty;
    
                foreach (DataRow rows in ds.Tables[0].Rows)
                {
                    //faz uma verificação para setar o selecionado
                    int lgProcessada = Int32.Parse(rows["Lg_Processada"].ToString());
                    string lgLiberarEmissaoExtrato = rows["Lg_Liberar_Emissao_Extrato"].ToString();
    
                    if (lgProcessada == 1 && lgLiberarEmissaoExtrato == "False")
                        selecionado = string.Format("{0}{1}", lgProcessada, lgLiberarEmissaoExtrato);
    
    
                    item = new ListItem();
                    item.Text = string.Format("Semana {0} Ano {1}", rows["nr_semana_credito"].ToString(), rows["nr_ano_credito"].ToString());
                    //Esta informação vai ser utilizada para setar o SelectedValue
                    item.Value = string.Format("{0}{1}", lgProcessada, lgLiberarEmissaoExtrato);
    
                    DropDownList1.Items.Add(item);               
                }
                DropDownList1.SelectedValue = selecionado;            
            }
        }
    }

    Leve em consideração apenas a partir do foreach (DataRow rows in ds.Tables[0].Rows) , pois o objeto você já tem carregado.

    Veja o resultado:


    Se você olhar o código é justamente a segunda linha do objeto.


    Paulo César Viana
    .NET Developer
    MCC - Microsoft Community Contributor
    MCP - Microsoft Certified Professional
    MCTS - Microsoft Certified Technology Especialist
    --
    Marque as respostas e contribua para uma melhora no fórum.


    • Editado Paulo César Viana sexta-feira, 24 de fevereiro de 2012 12:04
    • Marcado como Resposta _Manigold_ sexta-feira, 24 de fevereiro de 2012 12:47
    sexta-feira, 24 de fevereiro de 2012 12:02
  • Rsss funcionou, caraca um dia eu chego la kkkkkkkkkkk.

    Muito obrigado.

    sexta-feira, 24 de fevereiro de 2012 12:25
  • Não esquece de marcar as respostas.

    Paulo César Viana
    .NET Developer
    MCC - Microsoft Community Contributor
    MCP - Microsoft Certified Professional
    MCTS - Microsoft Certified Technology Especialist
    --
    Marque as respostas e contribua para uma melhora no fórum.

    • Marcado como Resposta _Manigold_ sexta-feira, 24 de fevereiro de 2012 12:48
    • Não Marcado como Resposta _Manigold_ sexta-feira, 24 de fevereiro de 2012 13:29
    sexta-feira, 24 de fevereiro de 2012 12:40
  • Pronto. Abs.
    sexta-feira, 24 de fevereiro de 2012 12:48
  • Pronto. Abs.

    Manigoldo,

    Marque somente as respostas que lhe foram úteis mesmo, por favor.

    Está aqui você pode desmarcar:


    Paulo César Viana
    .NET Developer
    MCC - Microsoft Community Contributor
    MCP - Microsoft Certified Professional
    MCTS - Microsoft Certified Technology Especialist
    --
    Marque as respostas e contribua para uma melhora no fórum.

    sexta-feira, 24 de fevereiro de 2012 12:51
  • Sim claro desculpe, Paulo cara uma duvida , surgiu um pequeno problema agora o que ocorre ele seleciona o index certinho , mas quando eu clico no botao pesquisar e pego o "ddl.SelectedValue"  aparece o "1False" que no caso é o indicador do index "Grossa mente falando."

    Existe alguma maneira de indeficar o "SelectedValue" ?  pois isso ocorre somente no index selecionado.

    Obrigado.

    sexta-feira, 24 de fevereiro de 2012 13:28
  • O selectedValue que você quer é o que? Todo o texto que aparece no controle? Se for use seuControle.SelectedItem.Text

    Paulo César Viana
    .NET Developer
    MCC - Microsoft Community Contributor
    MCP - Microsoft Certified Professional
    MCTS - Microsoft Certified Technology Especialist
    --
    Marque as respostas e contribua para uma melhora no fórum.

    • Marcado como Resposta _Manigold_ sexta-feira, 24 de fevereiro de 2012 13:37
    sexta-feira, 24 de fevereiro de 2012 13:32
  • resolvi paulo na verdade tive que mudar o SelectedValue  para dropConsulta.SelectedItem.Text , ta tudo certo , desculpa ai rssrsr.
    sexta-feira, 24 de fevereiro de 2012 13:37