Usuário com melhor resposta
DropDowlnist Selecionar Index

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;
// Monta ultima semana processada
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() + " "));
}
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
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
-
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
-
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 /> </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
-
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
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
-
-
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
-
-
Desculpa, na correria acabei esquecendo ,mas esta marcado.
Vlw.
- Editado _Manigold_ 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 /> </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
-
-
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
-
-
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. -
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.
-
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
-