ASP.NET - Problema con DataBound.DataField de GridView y Archivo XML

   
Vista:

Problema con DataBound.DataField de GridView y Archivo XML

Publicado por Jonathan (2 intervenciones) el 06/03/2014 01:36:23
Hola Foro,

Tengo una problema que me esta matando hace dias, estoy haciendo un proyecto en ASP.NET. La idea es la siguiente, de base de datos traigo una lista de objetos, me piden que cada objeto lo cargue en un archivo XML y luego lo muestre en un gridview, me tiene que devolver varias reuniones pero cuando listo en el gridview solo me queda una, y cuando vuelvo a listar el gridview queda vacio. Espero me ayuden!

Mi xml es asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="utf-8"?>
<Reuniones>
  <Reunion>
    <Fecha>
    </Fecha>
    <Hora>
    </Hora>
    <Cometido1>
    </Cometido1>
    <Cometido2>
    </Cometido2>
  </Reunion>
</Reuniones>

El archivo XML lo hice asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
try
        {
            DataTable dt = new DataTable();
            gvReunionesRealizadas.DataSource = dt;
            gvReunionesRealizadas.DataBind();
            lblInfo.Text = "";
 
 
 
                List<Reunion> lista =new List<Reunion>();
                DateTime fechaInicial = CalendarFechaInicial.SelectedDate;
                DateTime fechaFinal = CalendarFechaFinal.SelectedDate;
 
                if (fechaFinal.Year < fechaInicial.Year)
                {
                   lista = LogicaReunion.ListarReunionesEntreFechas(fechaFinal, fechaInicial);
                }
                else
                {
                    lista = LogicaReunion.ListarReunionesEntreFechas(fechaInicial, fechaFinal);
                }
                DataSet ds = new DataSet();
                XmlDocument archivo = new XmlDocument();
                archivo.Load(Server.MapPath("Reuniones.xml"));
 
                XmlNode reunion = archivo.DocumentElement;
 
                XmlElement fecha = archivo.CreateElement("Fecha");
                XmlElement hora = archivo.CreateElement("Hora");
                XmlElement memo1 = archivo.CreateElement("Cometido");
                XmlElement memo2 = archivo.CreateElement("Cometido");
 
                foreach (Reunion rer in lista)
                {
                    fecha.InnerText = rer.Fecha.ToString();
                    hora.InnerText = rer.Hora.ToString();
                    memo1.InnerText = rer.Memo1;
                    memo2.InnerText = rer.Memo2;
                    reunion.AppendChild(fecha);
                    reunion.AppendChild(hora);
                    reunion.AppendChild(memo1);
                    reunion.AppendChild(memo2);
                    archivo.Save(Server.MapPath("Reuniones.xml"));
                }
                ds.ReadXml(Server.MapPath("Reuniones.xml"));
 
                gvReunionesRealizadas.DataSource = ds.Tables[0];
                gvReunionesRealizadas.DataBind();
        }
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Santos Pairazamán Flores

Problema con DataBound.DataField de GridView y Archivo XML

Publicado por Santos Pairazamán Flores (46 intervenciones) el 06/03/2014 17:10:48
Intenta con esto:

Using ds As New DataSet()
ds.ReadXml(Server.MapPath("App_Data\ArchivoXML.xml"))
Grid001.DataSource = ds
Grid001.DataBind()
End Using

Donde El archivo XML esta dentro de la carpeta App_Data

Espero te sirva.


Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con DataBound.DataField de GridView y Archivo XML

Publicado por Jonathan (2 intervenciones) el 07/03/2014 02:00:55
En que lenguaje esta escrito eso? Yo estoy programando en C#, igualmente puse la ruta del Server.MapPath y me da entre data y Archivo el \ como secuencia de escape no conocida. Mi problema esta en como estoy cargando el XML, ya por ejemplo se que vienen dos objetos de base datos, pero en gridview solo me muestra uno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con DataBound.DataField de GridView y Archivo XML

Publicado por Jose Eduardo (5 intervenciones) el 11/03/2014 21:39:33
Buenas tardes,

En primera para que te piden que desde la base de datos generes tus objetos XML y posteriormente o despliegues en un grid.

La segunda si ya están tus datos en la BD, por que no los despliegas en el grid sin leer tu xml.

ahora bien en el archivo xml que estas generando te genera los nodos correspondientes o únicamente genera un nodo???

primero cargas una tabla al grid que esta vacia, posteriormente entras al foreach y en la ultima lectura del recorrido estas grabando.

esta parte quedaria eliminada del foreach --archivo.Save(Server.MapPath("Reuniones.xml"));
ahora bien solo estas cargando al dataset ds.ReadXml(Server.MapPath("Reuniones.xml")); solo 1 registro que se grabo en el XML.

saludos ...
www.itixmih.wordpress.com
jemp_intrepido
jempdulintre
jemp_dulce
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Santos Pairazamán Flores

Problema con DataBound.DataField de GridView y Archivo XML

Publicado por Santos Pairazamán Flores (46 intervenciones) el 13/03/2014 18:25:54
Jonathan, aquí realicé algo con un archivo q yo tengo. Hice algunos cambios. Espero t funcione.

Saludos,

XmlDocument archivo = new XmlDocument();

XmlNode docNode = archivo.CreateXmlDeclaration("1.0", "UTF-8", null);
archivo.AppendChild(docNode);

XmlNode DocElementNode = archivo.CreateElement("DocumentElement");
archivo.AppendChild(DocElementNode);

foreach (Normas rer in lista)
{
XmlNode NormasNode = archivo.CreateElement("Normas");
DocElementNode.AppendChild(NormasNode);

XmlNode CodigoNode = archivo.CreateElement("Codigo");
XmlNode IdentificadorNode = archivo.CreateElement("Identificador");
XmlNode SumillaNode = archivo.CreateElement("Sumilla");
XmlNode FechPubNormaNode = archivo.CreateElement("FechPubNorma");

CodigoNode.InnerText = rer.Codigo.ToString();
IdentificadorNode.InnerText = rer.Identificador.ToString();
SumillaNode.InnerText = rer.Sumilla;
FechPubNormaNode.InnerText = rer.FechaPublicacion.ToString();

NormasNode.AppendChild(CodigoNode);
NormasNode.AppendChild(IdentificadorNode);
NormasNode.AppendChild(SumillaNode);
NormasNode.AppendChild(FechPubNormaNode);

}

archivo.Save(Server.MapPath("App_Data") + @"\Normas.xml");

ds.ReadXml(Server.MapPath("App_Data") + @"\Normas.xml");
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar