Hi Leute,
hab eine Frage..
Ich entwickle zurzeit ein Webpart in Sharepoint mit C#. Ich möchte eine XML-Datei mit C# auslesen und in einer Tabelle in Sharepoint darstellen. Hierbei kann die Tabelle dynamisch wachsen..d.h. wenn der Anwender neue Daten eingibt, sollten diese Daten zurück in die XML-Datei geschrieben werden. Folgendes habe ich erstellt:
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:
| <?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/xsl" href="Test.xsl"?> <Projekt xmlns:Proc="test"> <Prozess> <ID>1</ID> <Name>Hünkar</Name> <Anfang>01.06.2010</Anfang> <Ende>01.06.2010</Ende> <Dauer>12345</Dauer> <Puffer>1923</Puffer> <Vorgaenger>12</Vorgaenger> </Prozess> <Prozess> <ID>2</ID> <Name>Prozess2</Name> <Anfang>01.06.2010</Anfang> <Ende>01.06.2010</Ende> <Dauer>5</Dauer> <Puffer>3</Puffer> <Vorgaenger>1</Vorgaenger> </Prozess> <Prozess> <ID>3</ID> <Name>Prozess3</Name> <Anfang>01.06.2010</Anfang> <Ende>01.06.2010</Ende> <Dauer>1</Dauer> <Puffer>9</Puffer> <Vorgaenger>1</Vorgaenger> </Prozess> <Prozess> <ID>4</ID> <Name>Prozess4</Name> <Anfang>01.06.2010</Anfang> <Ende>01.06.2010</Ende> <Dauer>9</Dauer> <Puffer>1</Puffer> <Vorgaenger>2</Vorgaenger> </Prozess> </Projekt> |
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: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105:
| using System; using System.Runtime.InteropServices; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Serialization; using Microsoft.SharePoint; using Microsoft.SharePoint.WebControls; using Microsoft.SharePoint.WebPartPages; using System.Xml; using System.Collections; using System.Reflection; using System.Drawing; using System.ComponentModel.Design; using System.Data;
namespace Prozessverwaltung2 { [Guid("a86f49e3-0715-4e9f-891a-6b8d8162a2f4")] public class Process : System.Web.UI.WebControls.WebParts.WebPart { public Process() { teste(); }
public void teste() { XmlDocument xml = new XmlDocument(); xml.Load("C:/Users/Administrator/Desktop/Prozesse.xml");
Panel tabpan = new Panel(); Table table = new Table(); table.Width = 100; table.Height = 100; table.BackColor = Color.LightSkyBlue; table.CellSpacing = -1;
TableRow row1 = new TableRow(); ArrayList tabcell = new ArrayList(); ArrayList IDxml = new ArrayList(); ArrayList IDtxtbox = new ArrayList(); int idzaehler = 0; foreach (XmlNode Prozess in xml.SelectNodes("/Projekt/*")) { IDxml.Add(Prozess["ID"].InnerText); /Alle Inhalte von "ID" in "IDCML"-Array. idzaehler++; }
for (int i = 0; i < IDxml.Count; i++) { IDLabel.Add(new Label().Text = IDxml.IndexOf(i).ToString()); }
for(int j=0;j<idzaehler;j++){ tabcell.Add(new TableCell().Controls.Add(IDLabel.IndexOf(j))); }
for (int k = 0; k < tabcell.Count; k++) { row1.Cells.Add(tabcell.IndexOf(k)); }
table.Controls.Add(row1); tabpan.Controls.Add(table); this.Controls.Add(tabpan);
} }
} |
Ist mein Vorgehen korrekt? Wie könnte ich das ganze anders gestalten?
Das Problem ist, dass mein Array zunächst dynamisch sein muss..wie gesagt, die Tabelle kann wachsen(nur die Zeilen, Spalten bleiben immer so).
Die nächste Frage ist:
Wenn der Benutzer in der Zeile 3, Spalte "Anfang" etwas ändert..dann muss ich genau dies in an die richtige Position in der XML-Datei aktualisieren können. Wie könnte ich das lösen?? Bitte um Hilfeeee..
Im Anhang wie die Tabelle aussehen soll..halt nur mit Textbox.
Vielen Dank schonmal für die Antworten..
Gruß