---
title: "Uppdatera gridview med xml som datasource"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/159852-uppdatera-gridview-med-xml-som-datasource"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "doggelito"
published: "2007-05-02T09:17:05.000Z"
updated: "2007-05-03T14:43:58.000Z"
replies: 3
views: 370
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/159852-uppdatera-gridview-med-xml-som-datasource"
---

# Uppdatera gridview med xml som datasource

## #1 — doggelito, 2007-05-02T09:17Z

Hjälp!

Försöker fixa en uppdatering av min xmlfil via en gridview.
Eftersom inte automatisk uppdatering finns inbyggt med xml som datasource så blir det till att bygga själv. :)

Har kommit så här långt:

```
    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {

        XmlDocument myXml = XmlDataSource1.GetXmlDocument();
        XmlNode selectedNode = myXml.SelectSingleNode("descendant::Fuse[Name='" + e.OldValues["Name"].ToString() + "']");

        [b]Response.Write(selectedNode.ToString());[/b]

        //selectedNode.Attributes["Name"].Value = e.NewValues["Name"].ToString();
       // selectedNode.Atrtibutes["Price"].value = e.NewValues["Price"].ToString();

       // XmlDataSource1.Save();

        GridView1.DataBind();
        GridView1.EditIndex = -1;
        e.Cancel = true;
    }
```

Nu får jag felmeddelande: System.NullReferenceException: Object reference not set to an instance of an object. (feta raden)

Det är väl nått med raden ovanför den: myXml.SelectSingleNode...
Jag hajjar inte riktigt hur jag hämtar rätt rad ur xmlfilen!
Min xmlfil ser ut så här:

```
<?xml version="1.0" encoding="utf-8" ?>
<Fuses>
  <Fuse Name="16" Price="123" FloatingPrice="98" />
  <Fuse Name="20" Price="234" FloatingPrice="198" />
</Fuses>
```

Permalänk: https://www.webforum.nu/p/159852

## #2 — doggelito, 2007-05-02T11:01Z

Hittade på:t

```
XmlNode selectedNode = myXml.SelectSingleNode("/Fuses/Fuse[@Name='" + e.OldValues["Name"].ToString() + "']");
```

Kör väl på ett tag till men det känns som om det kan komma fler frågor kring detta! :)

Permalänk: https://www.webforum.nu/p/1971268

## #3 — doggelito, 2007-05-03T14:02Z

Stött på patrull! :)

Jag la till en xsl-fil för att få till sortering av xml-filen, inga problem där.
Men nu hittar den inte längre noden som ska uppdateras av nån anledning.
Xsl-filen verkar ha egen namnsättning eller nått, hur kan jag se vad noderna heter?

Denna kod funkade innan xsl-filen men nu inte.

```
XmlDocument myXml = XmlDataSource1.GetXmlDocument();
        XmlNode selectedNode = myXml.DocumentElement.SelectSingleNode("/Fuses/Fuse[@Name='" + e.OldValues["Name"].ToString() + "']");
```

xsl-filen:

```
<?xml version="1.0" encoding="utf-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="Fuse">
    <item>
      <xsl:attribute name='Name'>
        <xsl:value-of select="@Name"/>
      </xsl:attribute>
      <xsl:attribute name='Price'>
        <xsl:value-of select="@Price"/>
      </xsl:attribute>
      <xsl:attribute name='FloatingPrice'>
        <xsl:value-of select="@FloatingPrice"/>
      </xsl:attribute>
    </item>
  </xsl:template>

  <xsl:template match="Fuses">
    <data>
      <xsl:apply-templates select="Fuse">
        <xsl:sort select="@Name" order="ascending"/>
      </xsl:apply-templates>
    </data>
  </xsl:template>
</xsl:stylesheet>
```

Permalänk: https://www.webforum.nu/p/1971526

## #4 — doggelito, 2007-05-03T14:43Z

Fixat! :)
Jag lära döpa taggarna i xsl-filen till samma namn som i xml-filen.

```
<?xml version="1.0" encoding="utf-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="Fuse">
    <Fuse>
      <xsl:attribute name='Name'>
        <xsl:value-of select="@Name"/>
      </xsl:attribute>
      <xsl:attribute name='Price'>
        <xsl:value-of select="@Price"/>
      </xsl:attribute>
      <xsl:attribute name='FloatingPrice'>
        <xsl:value-of select="@FloatingPrice"/>
      </xsl:attribute>
    </Fuse>
  </xsl:template>

  <xsl:template match="Fuses">
    <Fuses>
      <xsl:apply-templates select="Fuse">
        <xsl:sort select="@Name" order="ascending"/>
      </xsl:apply-templates>
    </Fuses>
  </xsl:template>
</xsl:stylesheet>
```

Permalänk: https://www.webforum.nu/p/1971549

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/159852-uppdatera-gridview-med-xml-som-datasource
