SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Alle Felder auslesen

Unbeantwortet Dieser Beitrag hat 15 Antworten

Ohne Rang
71 Beiträge
geisbock erstellt 18 Nov. 2009 12:37
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi,

ich habe folgendes Problem: Ich will alle Felder eines Elementes auslesen(Ich habe eine Liste mit PC Namen und jetzt will ich von einem PC alle Felder bzw. Daten haben)

 

 

 

 

 

 

 

query.InnerXml =

 

 

"<Where><Eq>"

+

 

 

"<FieldRef Name='LinkTitle'/>"

+

 

 

"<Value Type='User'>" + pcname + "</Value>"

+

 

 

"</Eq></Where>"

;

 

 

XmlNode queryResult = lists.GetListItems(listenName, null, query, null, null, null, null

);

 

r =

 

new XmlNodeReader

(queryResult);

r.ReadToFollowing(

 

"z:row"

);

 

 

MessageBox.Show("" + r.GetAttribute("ows_CPU") + "");

So jetzt bekomme ich den CPU wert ausgegeben. Wenn ich aber jetzt z.B die IP (oder auch bei anderen Feldern) haben will gibt er mir ncihts aus, es steht jedoch was in dem Feld drinne. ISt mein Code die richtige Lösung (mit dem "ows_...") oder kommt man da auch anders ran?

 

gruß geisbock

Alle Antworten

Ohne Rang
71 Beiträge
geisbock Als Antwort am 24 Nov. 2009 14:38
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi,

hat denn keiner eine Idee???

Muss doch irgendwie gehen die Felder auszulesen, man kann sie ja auch beschreiben!

 

gruß geißbock

Ohne Rang
29 Beiträge
Benjamin Windler Als Antwort am 24 Nov. 2009 16:02
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das Resultat, das du erhälst ist ja im XML Format. Schreib dir mal das ganze Resultat in eine xml Datei und schau dir die Namen der Felder an. So solltest du an ein Ziel kommen.

Ohne Rang
71 Beiträge
geisbock Als Antwort am 25 Nov. 2009 09:47
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi,

das hört sich ja ganz gut an jetzt schreibe ich das Object r in eine Xml Datei. Öfnne ich die Dati steht dort <System.Xml.XmlNodeReader />  wie bekomme ich es hin, dass er mir das Object "auflöst"? Also so, dass ich die Feldnamen sehe!?

 

 

 

XmlDocument doc = new XmlDocument();

 

XmlNode myRoot;

myRoot = doc.CreateElement(

"" + r + "");

doc.AppendChild(myRoot);

doc.Save(

@"c:\TEST.xml");

gruß geisbock

 

 

 

 

 

Ohne Rang
71 Beiträge
geisbock Als Antwort am 25 Nov. 2009 15:40
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi,

 

also ich weiß jetzt auch warum er nicht alle Felder findet. Und zwar liegt das daran, das er mir die Felder liefert die in der Ansicht vorhanden sind und da ist ja nur ein Teil. Wie sag ich dem denn jetzt das er mir alle existierenden Felder ausgeben soll?

gruß geisbock

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 25 Nov. 2009 15:44
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Dazu mußt Du bei der Abfrage des Webservice den Parameter ViewFields mit den gewünschten Feldern belegen:

<FieldRef Name="Title"/><FieldRef Name="Modified"/> usw.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
29 Beiträge
Benjamin Windler Als Antwort am 25 Nov. 2009 21:38
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Die Variable "r" ist vom Typ "System.Xml.XmlNodeReader". Daher schreibt er dort das hin. Du musst in diesem Fall r.ReadOuterXml() ausgeben, dann kriegst du sämtliche Inhalte.

Ohne Rang
71 Beiträge
geisbock Als Antwort am 26 Nov. 2009 10:51
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi,

also das Problem ist Andi, dass ich nur die Felder bekomme die in der Startansicht vorhanden sind. Ich will jedoch auch die haben, die angezeigt werden wenn ich auf ein Element klicke. Auch wenn ich mit ViewFields sage, dass er mir nur ein bestimmtes Feld anzeigen soll. Wenn dies dann nich in der Startansicht ist, dann zeigt er mir es auch nicht an.

 

gruß geisbock

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 26 Nov. 2009 11:30
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Doch, der ViewFields-Parameter ist genau dafür da. Wenn Du dort nichts angibst, werden die Felder der Standardansicht geliefert. Wenn Du etwas angibst, dann erhältst Du die angegebenen Felder (können auch mehrere sein).

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
71 Beiträge
geisbock Als Antwort am 26 Nov. 2009 12:56
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

OK dass kann sein, aber irgendwie will er wieder nicht. Könnt ihr mal bitte über mein Code schauen? 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

String feld1 = "Abteilung"

;

 

 

String feld2 = "Aufstellungsort"

;

queryanzeigen.InnerXml =

 

 

"<Where><Eq>"

+

 

 

"<FieldRef Name='LinkTitle'/>"

+

 

 

"<Value Type='User'>" + pcname + "</Value>"

+

 

 

"</Eq></Where>"

;

view.InnerXml =

 

 

"<ViewFields>"

+

 

 

"<FieldRef Name = 'Title' />" + feld1 + "<FieldRef Name='Modified'/>"

+

 

 

"<FieldRef Name = 'Title' />" + feld2 + "<FieldRef Name='Modified'/>"

+

 

 

"</ViewFields>"

;

 

 

 

 

XmlNode queryResulta = lists.GetListItems(listenName,null,queryanzeigen,view, null, null, null

);

 

 

XmlNodeReader ra = new XmlNodeReader

(queryResulta);

 

ra.ReadToFollowing(

 

"z:row"

);

 

 

while

(ra.MoveToNextAttribute())

 

 

MessageBox.Show("" + ra.Name + ":__:" + ra.Value + ""

);

Ohne Rang
71 Beiträge
geisbock Als Antwort am 26 Nov. 2009 13:28
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hat sich erledigt^^

 

Vielen Dank für die Hilfe!!!

 

gruß geisbock

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 26 Nov. 2009 13:30
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Gewöhne Dir bitte an, Deine Codeausschnitte zu formatieren. Zumindest ich schaue mir das sonst nicht (mehr) an. Außerdem solltest Du relevante Ausschnitte posten und nicht wahllos irgendwas. Hier geht es gerade um die ViewFields und dort verwendest Du zwei Variablen (feld1 und feld2), die nirgendwo in Deinem Code mit einem Wert belegt werden.

Anyway, schau Dir einfach nochmal in Ruhe an, was ich oben gepostet habe. Damit geht es.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
71 Beiträge
geisbock Als Antwort am 27 Nov. 2009 10:48
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi,

ja es klappt wie schon geschrieben. Sorry wegen dem Code-Durcheinander, aber kannst du mir sagen, wie man den so formatiert das er nciht auseinander gezogen wird?

Ich dachte es is klar das in feld1 und 2 der Name des Feldes drin steht, welches ich haben möchte.

 

gruß geisbock

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 27 Nov. 2009 10:58
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="geisbock"]Sorry wegen dem Code-Durcheinander, aber kannst du mir sagen, wie man den so formatiert das er nciht auseinander gezogen wird?[/quote]

Entweder von Hand formatieren oder von Visual Studio zuerst in den Windows-Editor (Notepad) kopieren und von dort dann weiter hierher.

[quote user="geisbock"]Ich dachte es is klar das in feld1 und 2 der Name des Feldes drin steht, welches ich haben möchte.[/quote]

Das Problem ist, daß wir nicht wissen können, was Du denkst ;-)
Poste einfach den Code, der für ein Problem relevant ist, aber den komplett. Ich weiß, daß das für einen Anfänger nicht immer ganz einfach ist, aber Übung macht den Meister :-)

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
71 Beiträge
geisbock Als Antwort am 27 Nov. 2009 11:28
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Da hast du wohl Recht!!!

Danke...

 

Habe grad noch eine kleine Frage und zwar habe ich eine Textbox mit Multiline. Jetzt will ich wenn ich dort in eine neue Zeile gehe und ich den Text in ein SP Feld schreibe, dass der Text dann auch in dem SP Feld in eine neue Zeile geht.

 

Kann man das machen

gruß geisbock

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 27 Nov. 2009 11:50
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Wo hast Du was für eine Textbox? Zeilenumbruch ist nicht gleich Zeilenumbruch ist nicht gleich neuer Absatz und das ganze ist auch noch unterschiedlich in ASP.NET und Windows Forms...

Auch bei der SharePoint-Textbox kommt es auf den Typ an (Plain Text vs. Rich-Text).

Viele Grüße
Andi
af @ evocom de
Blog