Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ricardo Fressa

DropDownList com base de dados XML

Recommended Posts

Olá, estou com uma grande duvida de como fazer uma conexão de uma DropDownList com uma arquivo que fiz em xml...

na DropDownList cliquei naquela setinha e fui em Choose Data Source selecionei o arquivo xml... só que na pagina que está minha DropDownList aparece assim na DropDownList

 

System.Web.UI.WebControls.XMLDataSourceNodeDescriptor

 

teria que aparecer os estados meu arquivo xml é assim

Será que alguém pode me ajudar a fazer essa conexão com esse arquivo usando o assistente mesmo?

Obrigado

 

<?xml version="1.0" encoding="utf-8" ?>
<Estados>
  <Estado>
	<IDEstado>AC</IDEstado>
  </Estado>
  <Estado>
	<IDEstado>AL</IDEstado>
  </Estado>
  <Estado>
	<IDEstado>AM</IDEstado>
  </Estado>
  <Estado>
	<IDEstado>AP</IDEstado>
  </Estado>
  <Estado>
	<IDEstado>BA</IDEstado>
  </Estado>
  <Estado>
	<IDEstado>CE</IDEstado>
  </Estado>
  <Estado>
	<IDEstado>DF</IDEstado>
  </Estado>
  <Estado>
	<IDEstado>ES</IDEstado>
  </Estado>
  <Estado>
	<IDEstado>GO</IDEstado>
  </Estado>
  <Estado>
	<IDEstado>MA</IDEstado>
  </Estado>
  <Estado>
	<IDEstado>MG</IDEstado>
  </Estado>
  <Estado>
	<IDEstado>MS</IDEstado>
  </Estado>
  <Estado>
	<IDEstado>MT</IDEstado>
  </Estado>
  <Estado>
	<IDEstado>PA</IDEstado>
  </Estado>
  <Estado>
	<IDEstado>PB</IDEstado>
  </Estado>
  <Estado>
	<IDEstado>PE</IDEstado>
  </Estado>
  <Estado>
	<IDEstado>PI</IDEstado>
  </Estado>
  <Estado>
	<IDEstado>PR</IDEstado>
  </Estado>
  <Estado>
	<IDEstado>RJ</IDEstado>
  </Estado>
  <Estado>
	<IDEstado>RN</IDEstado>
  </Estado>
  <Estado>
	<IDEstado>RO</IDEstado>
  </Estado>
  <Estado>
	<IDEstado>RR</IDEstado>
  </Estado>
  <Estado>
	<IDEstado>RS</IDEstado>
  </Estado>
  <Estado>
	<IDEstado>SC</IDEstado>
  </Estado>
  <Estado>
	<IDEstado>SE</IDEstado>
  </Estado>
  <Estado>
	<IDEstado>SP</IDEstado>
  </Estado>
  <Estado>
	<IDEstado>TO</IDEstado>
  </Estado>
</Estados>

Compartilhar este post


Link para o post
Compartilhar em outros sites

No seu dropdown, tente colocar a seguinte propriedade:

DataTextField="IDEstado"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, tudo bem? Obrigado por estar me ajudando...

 

coloquei a dropdownlist como falou

<asp:DropDownList 
						ID="DDListEstados" 
						runat="server" 
						TabIndex="8" AutoPostBack="True" DataSourceID="IDEstado" DataTextField="IDEstado">
					</asp:DropDownList>
					<asp:XmlDataSource ID="IDEstado" runat="server" DataFile="~/estados.xml">
					</asp:XmlDataSource>

aconteceu o seguinte erro, o que está no meu xml foi o que passei no post anterior...

Porque está acontecendo isso?

 

DataBinding: 'System.Web.UI.WebControls.XmlDataSourceNodeDescriptor' não contém uma propriedade com o nome 'IDEstado'.

Descrição: Ocorreu uma exceção não tratada durante a execução da atual solicitação da Web. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código.

 

Detalhes da Exceção: System.Web.HttpException: DataBinding: 'System.Web.UI.WebControls.XmlDataSourceNodeDescriptor' não contém uma propriedade com o nome 'IDEstado'.

 

Erro de Origem:

 

Exceção não tratada foi gerada durante a execução da atual solicitação da Web. As informações relacionadas à origem e ao local da exceção podem ser identificadas usando-se o rastreamento de pilha de exceção abaixo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode fazer direto no código. Fica melhor que usar esse datasource do VS. Segue abaixo:

 

aspx:

 

<asp:DropDownList ID="ddlEstados" runat="server" />

 

code behind:

 

protected void BindDLL()
{
		DataSet ds = new DataSet();
		ds.ReadXml(Server.MapPath("~/Estados.xml"));
		ddlEstados.DataSource = ds.Tables["Estado"];
		ddlEstados.DataTextField = "IDEstado";
		ddlEstados.DataValueField = "IDEstado";
		ddlEstados.DataBind();
}

depois chama ele no load:

 

this.BindDLL();

beleza?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Movido Plataforma .NET http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Plataforma .NET » Web Applications

 

Basta você copiar o código que ele postou e no PageLoad da sua página você coloca:

this.BindDLL();

Este código acima chama o método que ele postou aqui e que você deve colar no seu código.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

No arquivo contato.asp.cs eu coloquei assim:

 

protected void Page_Load(object sender, EventArgs e)
		{
		   this.BindDLL();
		}

protected void BindDLL()
		{
			DataSet ds = new DataSet();
			ds.ReadXml(Server.MapPath("~/Estados.xml"));
			ddlEstados.DataSource = ds.Tables["Estado"];
			ddlEstados.DataTextField = "IDEstado";
			ddlEstados.DataValueField = "IDEstado";
			ddlEstados.DataBind();
		}

e no arquivo contato.asp eu coloquei a dropdownlist

 

<asp:DropDownList ID="DropDownList1" runat="server" TabIndex="1">
						</asp:DropDownList>

Não está dando erro quando carrega a página o problema é que não está aparecendo os estados na dropdownlist....

O que está faltando? Como posso resolver isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

então vi a pagina lá, me ajudou muito sabe, fiz certinho seguindo a pagina mas não deu certo... cheguei ao seguinte codigo

 

codigo da dropdownlist que está com o name(id) de ddlestado

 

<asp:DropDownList ID="ddlestado" runat="server" DataTextField="IDEstado">
			</asp:DropDownList>

no meu contato.aspx.cs está assim

public partial class _Default : System.Web.UI.Page
{
	private void Page_Load(object sender, System.EventArgs e)
	{
		DataSet ds = new DataSet();
		ds.ReadXml(Server.MapPath("~/estados.xml"));
		ddlestado.DataSource = ds.Tables["Estados"];
		ddlestado.DataTextField = "IDEstado";
		ddlestado.DataValueField = "IDEstado";
		ddlestado.DataBind();
	}
   
}

O que está errado?

tipo, não está dando erro, simplesmente não aparece na minha dropdownlist... meu arquivo de estados.xml continua igual ao primeiro post

obrigado por estar me ajudando e até me mostrou um site, juro que segui ele, por favor as vezes estou esquecendo de algo

Compartilhar este post


Link para o post
Compartilhar em outros sites

então, consegui achar um contato feito em asp.net do jeito que eu queria... consegui ajustar ao meu projeto...

o problema que agora ele ta dando erro de directiva...

 

parece que ele não ta achando o arquivo que tem a classe pronta...

 

posso continuar nesse topico ou prefere que eu crie outro... porque a duvida mudou

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.