Usuário com melhor resposta
Preencher combobox

Pergunta
-
Preciso fazer um métod genérico para preencher alguns combobox, que nesse projeto, todos eles vêm damesma tabela, Então ficou mais fácil. No método eu gostaria de passar esses parametros:
public void enchecombo(Comobobox cb)
{
Meu select....
Meu while
cb.Add(meu_campo);
}....Acontece que o tipo Combobox não existe. Como eu faço(não é código, mas qual using eu uso. Na página aspx está assim o combobox:
<asp:DropDownList runat="server" ID="cboEmissor" style="font-famiuly:Verdana,font-size=12px" width="100%">
<asp:ListItem Text="TODOS" Value="00" />
<asp:ListItem Text="BANCO A" Value="01" />
<asp:ListItem Text="BANCO B" Value="02" />
......
</asp:DropDownList>É essa combo que eu ieri encher. Meu problema não está no código,mas sim como declarar isso em meu CodeBehind
Respostas
Todas as Respostas
-
-
-
Em realidade é um dropdownlist. Bem, consegui montar o método, mas na combo aparece apenas isso:
System.Data.Common.DataRecordInternal
O código que eu fiz foi o abaixo:
public Boolean Execute(DropDownList dl){
........
OracleDataReader dr = comando.ExecuteReader();
if(dr.HasRows)
{
while(dr.Read()
{
string nome = dr["EMI_C_NOME"].ToString();
dl.DataSource = dr;
dl.DataBind();
}
} -
-
-
-
Retire esta parte do seu codigo
if(dr.HasRows) { while(dr.Read() { string nome = dr["EMI_C_NOME"].ToString(); dl.DataSource = dr; dl.DataBind(); } }
Utilize assim
if(dr.HasRows) { dl.DataTextField = "Campo";//Coleque aqrui a coluna do Data Reader que você quer que apareça para o Usuario dl.DataTextValue = "Campo"; // Coloque aqui a coluna do Data Reader que você quer que o DropDown te forneça quando algo for selecionado dl.DataSource = dr; dl.DataBind(); }
Teste assim, creio que vai dar certo.
Bruno Viegas | Desenvolvedor Web | Desenvolvedor Dynamics CRM
- Sugerido como Resposta Bruno VD Ribeiro quarta-feira, 9 de maio de 2012 21:39
-
Meu código completo. Seeu retiro otext e o value, vem o erro citado bem acima. Se deixo, a combo vem com os valores default na tela aspx.
using System;
using System.Linq;
using System.Web;
using System.Data.OracleClient;
using System.Data;
using System.Text;
using System.Configuration;
using System.Collections.Generic;
using System.Web.UI.WebControls;
namespace GetNet.Monitoracao.UI.Web.Graficos
{
public class PreencheComboboxBL
{
private OracleCommand comando;public Boolean Execute(DropDownList dl)
{
Boolean retorno = false;string Erro = "";
StringBuilder comandoSQL = new StringBuilder();
comandoSQL.AppendLine("SELECT ");
comandoSQL.AppendLine("EMI_C_NOME ");
//comandoSQL.AppendLine(", ");
comandoSQL.AppendLine("FROM ");
comandoSQL.AppendLine("MNT_EMI_EMISSOR ");OracleConnection oracleConexao = new OracleConnection();
oracleConexao.ConnectionString = ConfigurationManager.ConnectionStrings["oracleConexao"].ConnectionString;this.comando = new OracleCommand(comandoSQL.ToString(), oracleConexao);
try
{
oracleConexao.Open();
comando.ExecuteNonQuery();OracleDataReader dr = comando.ExecuteReader();
dl.DataSource = dr;
dl.DataTextField = dr["EMI_C_NOME"].ToString();
dl.DataValueField = dr["EMI_N_CODIGO"].ToString();
dl.DataBind();}
catch (Exception excecao)
{
Erro = excecao.Message;
}
finally
{
oracleConexao.Close();
}comando.Dispose();
retorno = true;
return retorno;
}
}
}//Aqui eu chamo a classe
private PreencheComboboxBL cb = new PreencheComboboxBL();protected void Page_Load(object sender, EventArgs e)
{
cb.Execute(cboEmissor);
} -
-
-
-