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.




Edit und New Item Formulare ändern

Unbeantwortet Dieser Beitrag hat 12 Antworten

Ohne Rang
24 Beiträge
runner erstellt 16 Apr. 2010 09:32
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi All,

ich möchte gerne verschiedene Änderungen an den Edit und New Item Ansichten einer Liste vornehmen. Zum einen möchte ich Plausibilitäts-/Gültigkeitsprüfungen bestimmter eingegebener Werte durchführen. Falls ein Wert abgelehnt wird, wäre es mir am Liebsten diesselbe Darstellung zu verwenden, die default von SharePoint eingesetzt wird, wenn man z.B. "erforderliche Felder" freilässt und versucht das Formular abzuschicken. (Hinweis in Form eines Hinweises in Roter Schrift unter den angemahnten Feldern)

Zum Anderen soll bei Edit und New Item ein Feld durch ein Dropdownmenü gefüllt werden. Das Menü soll durch Werte einer anderen Liste belegt sein.  Eine angedachte Erweiterung, wäre ein "Suchfeld", dass die Liste mit den Werten durchsucht.

Jetzt bin ich mir unsicher, ob ich das Ganze über den SharePoint Designer realisieren kann/sollte, um NewForm.aspx anzupassen, oder ob sich da eher andere Möglichkeiten anbieten?

Zunächst dachte ich, die Edit und New Item Ansichten wären Application Pages, da könnte ich mir die Realisierung gut vorstellen, aber das scheint nicht so zu sein?

Alle Antworten

Ohne Rang
24 Beiträge
runner Als Antwort am 16 Apr. 2010 11:42
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi Benjamin,

danke für deine Antwort.

Ich möchte die vorhandenen EditForm und NewForm eigentlich nicht ersetzen, sondern die vorhandene Funktionalität erweitern. Wenn ich das nicht falsch verstanden habe, müsste ich die beiden Formulare in Infopath komplett nachbauen (also auch alle Felder die ich nicht verändern möchte und die komplette Logik des Erstellens oder Veränderns von Listenelementen), oder?

Viele Grüße,

Manuel

Ohne Rang
24 Beiträge
runner Als Antwort am 17 Apr. 2010 15:48
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi Benjamin,

ich hätte das Ganze zunächst lieber über das Ändern der NewForm.aspx realisiert. So könnte ich die bereits vorhandene Funktionalität weiternutzen.

Zur Validierung würde ich gerne die Asp.Net Validator einsetzen, bzw. erweitern. Leider verursacht das Hinzufügen eines solchen Controls zu NewForm.aspx einen "unexpected error" in der Seitendarstellung. Sobald ich in den Eigenschaften des Validator visible auf true setze, kommt es zu diesem Fehler beim Seitenaufruf.   (Den Listform Webpart habe ich nicht gelöscht. -ist auf "hidden")    ;-/

Edit: Erkenntnis, Validator arbeiten nicht mit den SharePoint Elemten - ersetze ich die durch Asp Controls funktioniert das.

Ein aber wirklich skuriler Fehler teibt mich zur Verzweiflung: Bei Einsatz des Validator für reguläre Ausdrücke rebelliert der Custom Listform WebPart, sobald der reguläre Ausdruck ein Komma enthält. Auch bei dem vom Designer vorgeschlagenen Ausdruck für japanische Telefonnummern. ;-(

 

 Weiß dafür jemand Abhilfe?

Viele Grüße,

Manuel

Ohne Rang
643 Beiträge
Henning Eiben Als Antwort am 20 Apr. 2010 09:16
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Bei der Verwendung von InfoPath musst du allerdings auch über die entsprechenden Lizenzen verfügen - also entweder Enterprise CALs oder du brauchst eine Forms-Server Lizenz inkl. CALs.

Das kann auch Ausschlusskriterium sein :)

Henning Eiben
busitec.de

Ohne Rang
24 Beiträge
runner Als Antwort am 20 Apr. 2010 09:24
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Deshalb habe ich mir ein "Customizing" per Designer angetan. Leider ist es per JScript nicht besonders komfortabel, einzelne Form-Elemente anzusprechen Die jeweilige ID wird clientseitig unglaublich aufgeblasen.

Viele Grüße,

Manuel

Ohne Rang
643 Beiträge
Henning Eiben Als Antwort am 20 Apr. 2010 09:36
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Falls du kein jQuery verwendest, dann solltest du das auf jeden Fall mal in Betracht ziehen. Dort hast du z.B. die Möglichkeit Elemente auf der Basis von CSS-Klassen zu finden, was die Arbeit wesentlich vereinfacht. Außerdem sollten die Controls doch teilweise über Namen verfügen, die den Feldnamen entsprechen. Du musst also nicht unbedingt immer die Client-IDs der Controls verwenden.

Henning Eiben
busitec.de

Ohne Rang
24 Beiträge
runner Als Antwort am 20 Apr. 2010 14:56
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich nutze die ClientID weil ich keinen anderen Weg kenne, die Controls zu adressieren. ;-/

Viele Grüße,

Manuel

Ohne Rang
643 Beiträge
Henning Eiben Als Antwort am 20 Apr. 2010 15:07
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Da ist eigentlich nicht so schwer :)

Also, wenn du in deinem Formular bspw. ein Fehld mit dem Namen Personenauswahl hast, dann kannst du das mit jQuery wie folgt finden:

$("div[title='Personenauswahl']")

Das bedeutet: suche ein DIV-Element, das einen Titel "Personenauswahl" hat. :) Zum finden der Elemete bietet sich die Verwendung der Dev-Toolbar aus dem IE8 an.

Henning Eiben
busitec.de

Ohne Rang
24 Beiträge
runner Als Antwort am 20 Apr. 2010 17:23
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Danke Dir. JQuery vereinfacht das Ganze deutlich.

Viele Grüße,

Manuel

Ohne Rang
643 Beiträge
Henning Eiben Als Antwort am 21 Apr. 2010 10:15
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Dem entnehme ich, dass du den Zugriff mit jQuery hinbekommen hast?

Henning Eiben
busitec.de

Ohne Rang
24 Beiträge
runner Als Antwort am 21 Apr. 2010 17:15
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Genau. Mithilfe von  ($("[id$='_LetzterAbschnittDerId']") greife ich auf den letzten Teil der jeweiligen ID zu. Das habe ich dort entnommen: http://www.jankoatwarpspeed.com/post/2009/01/08/Select-ASPNET-server-controls-easily-with-jQuery.aspx

Nochmal vielen Dank.

JavaScript, insbesondere in Verbindung mit dem SPD, bereitet mir immer noch keine große Freude, aber es ist erträglicher geworden ;-)

Viele Grüße,

Manuel