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.




ja/nein-Feld mit Javascript überprüfen

Unbeantwortet Dieser Beitrag hat 8 Antworten

Ohne Rang
91 Beiträge
Myrcella erstellt 19 Dez. 2014 10:19
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Community,

ich erstelle gerade ein Template für den CSWP, welches ja/nein-Spalten darstellen soll. Ist das Feld auf "ja" gesetzt, soll Bild1 angezeigt werden, ist das Feld "nein", dann soll Bild2 angezeigt werden. Leider habe ich es noch nicht hinbekommen, die Bedingung richtig zu basteln, da mir immer entweder bei allen Einträgen Bild1 oder bei allen Einträgen Bild2 angezeigt wird. Das HTML ist also in Ordnung, nur beim JS stimmt irgendetwas nicht.

<!--#_ if(yn-Feld == true) { _#-->
<img src="[URL]/Bild1.png" alt="Bild1">
<!--#_ } else { _#-->
<img src="[URL]/Bild2.png" alt="Bild2">
<!--#_ } _#-->

Ich habe es bereits mit ==true, =="true", ==ja, =="ja", ==1 und =="1" ausprobiert, aber bringe es irgendwie nicht zum Laufen. Könnt ihr mir da helfen?

Viele Grüße,

Myrcella

Alle Antworten

Ohne Rang
91 Beiträge
Myrcella Als Antwort am 19 Dez. 2014 10:56
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich habe jetzt erst die ja/nein-Spalte probeweise in eine Zahlenspalte umgewandelt, aber das hat nicht geholfen. Dann hab ich die Zahlenspalte in eine Stringspalte umgewandelt, und auch das hilft nicht. Wenn ich die Bedingung auf ==0 oder ==false setze, sieht SharePoint sie als erfüllt an - für alle Elemente, unabhängig vom Inhalt der Spalte. Das kann doch irgendwie nicht stimmen, oder? Ich habe auch bereits zigmal gecrawlt, aber das bewirkt irgendwie gar nichts.

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 19 Dez. 2014 11:02
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich kann es Dir auswendig auch nicht sagen, aber lasse Dir den Inhalt des Feldes doch einfach mal in den Suchergebnissen ausgeben, damit Du siehst, was dort drinsteht.

Ich habe selbst noch nicht wirklich mit den HTML-Templates rumgespielt (weil ich lieber das JavaScript direkt bearbeite), aber bist Du sicher, daß die Syntax zum Zugriff auf das Feld so stimmt?

Ich meine das hier:
yn-Feld == true

Direkt im JavaScript würde man das so machen:
ctx.CurrentItem.yn-Feld == true

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
91 Beiträge
Myrcella Als Antwort am 19 Dez. 2014 11:16
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Andi Fandrich"]lasse Dir den Inhalt des Feldes doch einfach mal in den Suchergebnissen ausgeben, damit Du siehst, was dort drinsteht[/quote]

Gute Idee, hab ich gemacht (also einfach kurz als Textausgabe im Template ergänzt), und es wird einfach gar nichts angezeigt. Das Bild verrutscht leicht, also funktinioniert die Ausgabe scheinbar, nur ist das Feld offiziell leer. Verrückt. Ich hab mir doch nicht eingebildet, dass ich vorhin 1300 Elemente gepflegt habe...!

[quote user="Andi Fandrich"]bist Du sicher...?[/quote]

Bin ich mir nie. Aber ich hab das ganze schon für eine Bibliothek zum Laufen gebracht, da sollte es für die Liste doch ähnlich funktionieren - oder eben auch nicht.

[quote user="Andi Fandrich"]ctx.CurrentItem.yn-Feld == true[/quote]

Hab ich getestet, sowohl in der Bedingung als auch in der Textausgabe, es ändert aber nichts. Aaargh.

Ohne Rang
91 Beiträge
Myrcella Als Antwort am 19 Dez. 2014 12:35
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Als neuen Versuch habe ich jetzt alle 0-en in der Stringspalte durch leere Felder und alle 1-en durch "a" ersetzt. Dann habe ich die Bedingung auf if(!yn-Feld.isempty) gesetzt - diese Bedingung erkennt er immer als wahr an, aber gibt nach wie vor keinen Text aus. What the...?

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 19 Dez. 2014 13:14
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hast Du auch ein Managed Property für das Feld und heißt das genau so wie angegeben (hier yn-Feld)? Ist das Property durchsuchbar? Und hast Du es in den Eigenschaften des Display Templates angegeben (mit korrekter Schreibweise)? Irgendwo dort muß es verlorengegangen sein.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
91 Beiträge
Myrcella Als Antwort am 19 Dez. 2014 13:32
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Andi Fandrich"]Hast Du auch ein Managed Property für das Feld...[/quote]

Ja.

[quote user="Andi Fandrich"]...und heißt das genau so wie angegeben (hier yn-Feld)?[/quote]

Nein. Das heißt RefinableString19, deswegen habe ich das in dieser Form 'yn-Feld':'RefinableString19', angegeben und dann als Variable so var yn-Feld = $getItemValue(ctx, "yn-Feld"); deklariert. Das sollte alles meines Wissens nach in Ordnung so sein.

[quote user="Andi Fandrich"]Ist das Property durchsuchbar?[/quote]

Nein, aber abfragbar, das ist das, worauf es ankommt, soweit ich weiß.

[quote user="Andi Fandrich"]Und hast Du es in den Eigenschaften des Display Templates angegeben (mit korrekter Schreibweise)?[/quote]

Yep, siehe oben.

[quote user="Andi Fandrich"]Irgendwo dort muß es verlorengegangen sein.[/quote]

Ich kann es mir echt nicht erklären. Aber mein Kollege meinte, er bekommt das schon alleine hin - muss er ja jetzt auch.

Dankeschön, Andi, dass du mir auch mit den verworrensten Problemen immer weiter geholfen hast!

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 19 Dez. 2014 13:52
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Myrcella"]'yn-Feld':'RefinableString19'[/quote]

Aha, ich dachte eigentlich Du hättest diesen Namen nur hier zur Verdeutlichung gewählt. Schmeiße das Minuszeichen aus dem Variablennamen, das ist nicht gültig. Also z.B. ynFeld, sonst sieht JavaScript das als "yn minus Feld".

[quote user="Myrcella"][quote user="Andi Fandrich"]Ist das Property durchsuchbar?[/quote]

Nein, aber abfragbar, das ist das, worauf es ankommt, soweit ich weiß[/quote]

Meinte ich ja auch ;-)

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
91 Beiträge
Myrcella Als Antwort am 19 Dez. 2014 13:55
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Andi Fandrich"]Aha, ich dachte eigentlich Du hättest diesen Namen nur hier zur Verdeutlichung gewählt.[/quote]

Hab ich auch. Sorry, ich wusste nicht, dass das nen Unterschied macht. Ich hab es eigentlich "deyn" genannt. Ohne Anführungszeichen natürlich. Also sind wir hiermit immer noch nicht weiter gekommen - verrückt.