Cómo rellenar el cuadro combinado con los valores de un archivo xml.para rellenar un cuadro combinado con valores de un archivo xml
Respuesta
Tendrá que leer los datos del archivo y puede usar algo como dataset.ReadXML() y luego usarlo para establecer su enlace para su cuadro combinado.
Aquí hay un ejemplo para comenzar. http://www.codeproject.com/KB/cs/dropdownfromxml.aspx
Actualización: Tenga en cuenta que hay dos clases de DataGrid. El que tiene el método DataBind() está en el espacio de nombres System.Web.UI.WebControls. El control de formulario de Windows no tiene el método DataBind y debería funcionar sin esa línea. Ver: http://msdn.microsoft.com/en-us/library/system.windows.forms.datagrid.datasource.aspx
Usando la clase XmlDocument puede recorrer los nodos del archivo xml y luego seguir añadiendo elementos a la lista desplegable. código de la muestra:
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath("regis.xml"));
XmlNodeList colorList = doc.SelectNodes("Information/Comments/Name");
foreach (XmlNode Name in colorList)
{
DropDownList1.Items.Add(Name.InnerText);
}
¿Será el mismo código aplicable para la aplicación de formulario de Windows – anasooya
no realmente ... No soy un desarrollador de formulario ganador, pero supongo que la lógica debería ser más o menos la misma. Looping a través del archivo y luego agregar al cuadro combinado. Haz alguna búsqueda en Google – pramodtech
ok lo tengo, pero mi archivo xml es un poco complicado, no estoy siendo capaz de entender cómo seleccionar los nodos, como en el código que ha enviado. – anasooya
Teniendo en cuenta este XML
<?xml version="1.0" encoding="UTF-8"?>
<root>
<node1 attribute1="attrib1" attribute2="attrib2">
<node2>
<node3>Item1</node3>
<node3>Item2</node3>
<node3>Item3</node3>
</node2>
</node1>
</root>
Podemos llegar a los datos de algunas maneras. Esta clase tiene dos métodos, el primero recorrerá todos los nodos hasta que llegue a los datos que queremos. El segundo usará el método XmlDocument.GetElementsByTagName() para ir directamente a los datos que queremos.
using System;
using System.Xml;
using System.Collections.Generic;
public static class MyXmlParser
{
///This method will loop through each node to get to the data we want.
public static List<string> GetItemsFromXmlByLoopingThroughEachNode(string Filename)
{
//Create a list to store all the items.
List<string> Items = new List<string>();
//Load the document from a file.
XmlDocument doc = new XmlDocument();
doc.Load(Filename);
//Loop through all the nodes in the document.
foreach(XmlNode RootNode in doc.ChildNodes)
{
if(RootNode.NodeType != XmlNodeType.XmlDeclaration)
{//If the node is not the declaration node parse it.
//Loop through all the child nodes of <root>
foreach(XmlNode Node1Node in RootNode.ChildNodes)
{
//Read Attributes of <node1>
XmlAttributeCollection attributes = Node1Node.Attributes;
XmlAttribute Attribute1 = attributes["attribute1"];
//Attribute1.Value will give you the string contained in the attribute.
//Loop through all child nodes of <node1>
foreach(XmlNode Node2Node in Node1Node.ChildNodes)
{
//Loop through all child nodes of <node2>
foreach(XmlNode Node3Node in Node2Node.ChildNodes)
{
//These nodes contain the data we want so lets add it to our List.
Items.Add(Node3Node.InnerText);
}
}
}
}
}
//Return the List of items we found.
return Items;
}
///This method will use GetElementsByTagName to go right to the data we want.
public static List<string> GetItemsFromXmlUsingTagNames(string Filename, string TagName)
{
//Create a list to store all the items.
List<string> Items = new List<string>();
//Load the document from a file.
XmlDocument doc = new XmlDocument();
doc.Load(Filename);
//Get all the <node3> nodes.
XmlNodeList Node3Nodes = doc.GetElementsByTagName(TagName);
//Loop through the node list to get the data we want.
foreach(XmlNode Node3Node in Node3Nodes)
{
//These nodes contain the data we want so lets add it to our List.
Items.Add(Node3Node.InnerText);
}
//Return the List of items we found.
return Items;
}
}
Una vez que tenga los datos que necesita, puede agregar los elementos a la ComboBox
//Get the items from the XML file.
List<string> Items = MyXmlParser.GetItemsFromXmlUsingTagNames("C:\\test.xml","node3");
//Add them to the ComboBox
ComboBox1.Items.AddRange(Items.ToArray())
Ver
- 1. ¿Cómo rellenar el cuadro combinado de formularios de C# windows?
- 2. Tkinter - Cómo crear un cuadro combinado con autocompletado
- 3. Rellenar un hashmap con valores predefinidos (java)
- 4. Formato de texto para un cuadro combinado, C#
- 5. Desactivar elementos particulares en un cuadro combinado
- 6. C# - Completar un cuadro combinado con una DataTable
- 7. valor seleccionado de un cuadro combinado
- 8. Aspecto del cuadro combinado
- 9. combinado cuadro de autocompletar
- 10. ¿Cómo obtengo un cuadro combinado extjs para que funcione como un cuadro normal de selección html?
- 11. Encuadernación convertida Enum a un cuadro combinado
- 12. ¿Acceso directo al cuadro combinado DataGridView con un solo clic?
- 13. Cuadro combinado de WinForms con varias columnas (C#)?
- 14. Obtener el texto seleccionado de un cuadro combinado usando jQuery, por nombre del cuadro combinado?
- 15. Delphi: ¿Es posible tener un cuadro combinado con elementos desactivados?
- 16. Información sobre herramientas para cada elemento en un cuadro combinado
- 17. cursor escribir de cuadro combinado
- 18. Análisis XML: lea un archivo XML simple y recupere valores
- 19. Cómo permitir que un usuario escriba en un cuadro combinado
- 20. Rellenar ancho de cuadrícula dentro de un cuadro de lista
- 21. Lista desplegable de cuadro combinado
- 22. ¿Mejor cuadro combinado de Javascript?
- 23. Enlazar un cuadro combinado de formulario en Access 2007
- 24. Eventos del cuadro combinado VB6
- 25. Cómo anular la selección del texto de un cuadro combinado
- 26. Cómo centrar elementos en un cuadro combinado de Java
- 27. Agregar enum al cuadro combinado
- 28. WPF: desplegable de un cuadro combinado highlightes el texto
- 29. ¿Cómo obtener la cantidad de elementos en un cuadro combinado?
- 30. caso cuadro combinado desplegable sensibles
vi el ejemplo de este vínculo, pero estoy consiguiendo error en datagrid.databind última línea(); y cnt averigüe el error – anasooya
¿Puede publicar el error que está obteniendo utilizando el ejemplo del enlace? – KaeL
'System.Windows.Forms.DataGrid no contiene una definición para' DataBind 'y no se pudo encontrar ningún método de extensión' DataBind 'que aceptara un primer argumento de tipo' System.Windows.Forms.DataBind '(¿falta una directiva using? ¿o una referencia de ensamblaje?) – anasooya