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.




Tabelle in Multiline field

Geprüfte Antwort Dieser Beitrag hat 10 Antworten

Ohne Rang
41 Beiträge
Thomask erstellt 9 Feb. 2016 08:26
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo zusammen,

ich versuche das NewForm über den SharePoint Designer mit javascript anzupassen.

Bei einem Klick auf einen Button soll in einem Multi Line Rich Text Field eine Tabelle erscheinen. Das Einfügen von Text funktioniert z.B. über:

$('div[id$="TextField_inplacerte"').text("Text");  

Das Einfügen einer Tabelle hat bisher leider nicht funktioniert.

Kennt jemand den Befehl um eine Tabelle in das Feld einzufügen?

 

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 9 Feb. 2016 08:50
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Verwende statt der text() die html() Funktion:

$(bla).html("<table></table>")

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
41 Beiträge
Thomask Als Antwort am 9 Feb. 2016 09:46
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Vielen Dank das hat mich einen Schritt weiter gebracht :)

Bei mir ändert der SharePoint Designer die " und ' immer automatisch in &quot; und &apos;

So funktioniert es:

$(&apos;div[id$=&quot;TextField_inplacerte&quot;&apos;).html(&quot;<table><tr><td><strong>Test1</strong></td></tr></table>&quot;);

Allerdings habe ich dabei keinen Tabellenrahmen. Wenn ich versuche den Rahmen zu setzen geht es nicht mehr:

$(&apos;div[id$=&quot;TextField_inplacerte&quot;&apos;).html(&quot;<table border="1"><tr><td><strong>Test1</strong></td></tr></table>&quot;);

Eigentlich hatte ich auch '1' eingegeben, aber der Designer ändert mir das in "1".

Wie kann ich denn die Eigenschaften setzen?

 

 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 9 Feb. 2016 10:34
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das sieht ja eklig aus. Wo setzt Du denn den Code ein? SharePoint Designer ist zwar schlimm, aber sowas sollte er eigentlich nicht machen. Wenn man ganz normal irgendwo <script> Tags einbaut, dann geht das auch. Oder man verzichtet ganz auf diese "Software" und nimmt einfach ein Inhalts-Editor-Webpart (Script Editor in 2013).

Wenn das gelöst ist, kannst Du auch ganz normal Attribute setzen. Und nur zur Info: man setzt Tabellenrahmen nicht mit border-Attribut, sondern über CSS.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
41 Beiträge
Thomask Als Antwort am 9 Feb. 2016 11:01
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Den Code habe ich in der Tabelle von den Spaltennamen und Eingabefeldern eingefügt. Ich glaube das ist der "XSL" Teil.

Bei der mehrzeiligen Spalte habe ich erst einen Button eingefügt und darunter ein <script> Tag mit dem Code. Der Button ruft bei "onclick" eine Funktion aus dem Script auf.

Ich habe eben probiert den Code unter <asp:Content ContentPlaceHolderId="PlaceHolderMain" runat="server"> zu setzen. Dort werden die Zeichen nicht verändert, aber der Button kann die Funktion irgendwie nicht mehr finden :(

Wo würde man denn normalerweise den Script Code einfügen?

 

 

 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 9 Feb. 2016 11:22
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich wußte nicht, daß Du das ganze Formular durch ein eigenes ersetzt hast. Innerhalb des XSL würde ich tatsächlich nur den Button unterbringen und das Script komplett außerhalb halten. Direkt unterhalb von der genannten Zeile mit PlaceHolderMain ist ein schöner Platz (also oberhalb des Formularwebparts).

Dort bringst Du eine Funktion unter, die der Button dann aufruft:
<script type="text/javascript">
function foo() {
 // hier der eigentliche Code
}
</script>

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
41 Beiträge
Thomask Als Antwort am 9 Feb. 2016 11:47
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hmm genau so habe ich das gemacht, aber der Aufruf beim Button funktioniert dann nicht mehr.

Den Aufruf beim Button habe ich so definiert:

<input type="button" name="btnAddTab" value="Hinzufügen"  onclick="javascript:AddTabToField()" />

Muss ich dort vielleicht einen anderen Pfad für die Funktion angeben?

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 9 Feb. 2016 13:05
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Wenn die Schreibweise inkl. Groß-/Kleinschreibung wirklich stimmt, dann sollte das passen. "Schöner" wird es, wenn Du das javascript: wegläßt und ein Semikolon dahinter machst, aber das sollte egal sein.

Da wirst Du selbst einen Debugger bemühen müssen, sorry.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
41 Beiträge
Thomask Als Antwort am 9 Feb. 2016 13:33
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich habe mir das Debuggen im Browser mal angeschaut. Dort bekomme ich die Fehlermeldung:

"Der Wert der Eigenschaft "AddTabToField" ist Null oder undefiniert, kein Function-Objekt"

Es sieht so aus als wird die Funktion nicht aufgerufen, weil sie nicht gefunden wird. Wenn sie im XSL-Tag ist wird sie aufgerufen.

Es ist die gleiche Funktion nur eben nicht mehr im XSL-Tag, sondern direkt unter <asp:Content ContentPlaceHolderId="PlaceHolderMain" runat="server">

Hmm vielleicht fällt dir ja noch etwas ein? Ansonsten schon mal vielen Dank :)

 

 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 9 Feb. 2016 14:16
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Entweder Du hast da einen Syntaxfehler im Script (der dazu führen kann, daß der gesamte Scriptblock quasi unsichtbar ist), oder es ist einfach doch an der falschen Stelle. Mit XSL hat das jedenfalls definitiv nichts zu tun, weil das XSL auf dem Client unbekannt ist.

Packe doch mal ein Content Editor Webpart auf die Seite (oberhalb des Formulars) und das Script dort in die Quellcodeansicht.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
41 Beiträge
Thomask Als Antwort am 9 Feb. 2016 15:19
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich habe mal ein neues NewForm angelegt und es dort nochmal probiert. Es funktioniert :)))

Keine Ahnung was in dem anderen Form falsch war, aber es war anscheinend irgendein Fehler im Code.

Vielen Dank für deine Hilfe :)