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.




Custom Field Types mit UserControls

Geprüfte Antwort Dieser Beitrag hat 11 Antworten

Ohne Rang
58 Beiträge
cwicky erstellt 22 Feb. 2011 21:30
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo zusammen,

ich habe mir ein Custom Field Type erstellt mit Hilfe eines UserControls(.ascx). Dieses läuft auch fehlerfrei.

Jetzt möchte ich aber ein User Control als Custom field type programmieren, welches mehrere Einträge entgegen nimmt.

Beispiel:

Ich habe einen Mitarbeiter. Zu diesem Mitarbeiter sollen dann via custom field ein Projekt, ein Anfangsdatum und ein Enddatum hinzugefügt werden können. Dies würde ich auch noch hin bekommen. Doch jetzt fehlt mir der Ansatz, wie ich es umsetzen kann, dass z.B. zu diesem Mitarbeiter auch mehrere Projekte (mit Anfangsdatum und Enddatum) hinzugefügt werden kann, ohne den Eintrag zu speichern und wieder Neu zu öffnen?

Ich  möchte halt gerne so etwas haben, wie man einem Mitarbeiter x-beliebige Projekte zuordnen kann. Am liebsten über einen Button im UserControl z.B. 'Weiteres Projekt hinzufügen', wobei das zuvor zugeordnete Projekt auch weiterhin sichtbar ist.

Kann mir jemand weiterhelfen?

Gruß

cwicky

 

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 23 Feb. 2011 08:12
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Sowas ähnliches habe ich auch schon gemacht. Wo genau klemmt's denn?

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
58 Beiträge
cwicky Als Antwort am 23 Feb. 2011 10:12
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Mir fehlt da eigentlich der komplette Ansatz:-(

Und zwar ist mein Problem, wie ich es hinbekomme, dass wenn ich für einen Mitarbeiter entsprechende Daten eingegeben habe, diese dann nicht speichern möchte, sondern weitere Daten hinzufügen kann. D.h. alle eingeben Daten sollen bei 'Neu' sichtbar sein und bei 'Bearbeiten' sollen auch alle sichtbar sein und neue einträge hinzugefügt, alte geändert oder gelöscht werden können.

Meine Frage daher, wie setze ich das ganze um?

Meine Ideen:

Kann ich das über das UserControl steuern, indem ich einfach auf Knopfdruck ein neues UserControl hinzufüge? Wie realisiere ich das dann mit der Datensteuerung, so dass auch alle Daten gespeichert, bzw. Teile gelöscht werden?

Muss ich diese Daten dann via ListItem.ID ansprechen und über das Objektmodell speichern?

Oder gibt es für mein Problem ein einfaches Sharepoint-Template?

Am liebsten wäre mir dann noch eine Darstellung in der Sicht, wie unten:

Mitarbeiter1                         Projekt1                                 10.10.10                           12.12.10
Mitarbeiter1                         Projekt2                                 01.01.11                           09.09.11

oder

Mitarbeiter1                         Projekt1                                 10.10.10                           12.12.10
                                            Projekt2                                 01.01.11                           09.09.11


Ich würde, dass Ganze halt über das ListItem Objekt realisieren. Prüfe ob Eintrag vorhanden, wenn dann update, sonst neu bzw. löschen.

Gibt es da irgendeinen besseren Ansatz?

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 23 Feb. 2011 11:09
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich fürchte, Du mußt Dich da noch mehr schlau machen, wie das mit den eigenen Feldtypen funktioniert. In jedem Fall solltest Du von dort nicht direkt auf das ListItem zugreifen, sondern die vorgesehen Methoden, also Überschreibungen von SPField, nutzen.

Zum Speichern machst Du eine eigene FieldValue-Klasse, so wie SharePoint das auch macht. Es gibt für jeden Feldtyp eine eigene SPField<Type>Value-Klasse. Für Dich könnte eine Ableitung von SPFieldMultiColumnValue interessant sein.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
58 Beiträge
cwicky Als Antwort am 23 Feb. 2011 11:38
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Danke für den Tipp!

Das reicht mir schon, dann weiß ich wenigsten wo ich ansetzen muss.

Ohne Rang
58 Beiträge
cwicky Als Antwort am 25 Feb. 2011 10:32
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andi,

ich habe mir mal Deinen Tipp etwas genauer angeschaut. Mit SPFieldMultiColumn kann man so etwas, wie z..B. Strasse, PLZ und Ort in einer Spalte unterbringen. Das war aber nicht mein Problem. Ich möchte z..B. Strasse, PLZ und Ort mehrmals eingeben können, ohne dabei immer wieder einen neuen Eintrag erstellen zu müssen.

Am besten verstehst Du mein Problem, wenn Du im SP eine Listenansicht bearbeitest. Z.B. im Filter sind standardmäßig 2 Filtermöglichkeiten vorgegeben, diese sind allerdings auch "OPTIONAL" bis 10 erweiterbar. So eine optionale Funktion suche ich. Wo ich nicht nur 1x Str,PLZ und Ort eingeben kann, sondern beliebig oft.

Hast Du eine Idee, ob es da eine SP-Funktion gibt, oder wie man dieses Problem sonst umsetzen kann?Gruß

cwicky

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 25 Feb. 2011 13:27
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das mußt Du schon selbst ausprogrammieren. Man kann so etwas z.B. machen, indem per JavaScript Tabellenzeilen aus- und eingeblendet werden. Die Zeilen enthalten dann jeweils den kompletten Satz an Controls, in Deinem Beispiel für einen Filter.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
58 Beiträge
cwicky Als Antwort am 25 Feb. 2011 13:46
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Danke für die Antwort.

Das habe ich mir schon fast gedacht, dass dafür keine Methode in Sharepoint gibt:-(

Ohne Rang
122 Beiträge
Christian Groß Als Antwort am 23 Feb. 2011 11:20
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo cwicky,

ich glaube ihre Problematik verstanden zu haben und denke das Sie zu einem Element mehere Positionen erfassen wollen. Diese Positionen kommen teilweise direkt durch eine Eingabe (TextField) oder werden durch Auswahl(LookupField) ergänzt.
Wir haben gerade sowas bei uns als Custom Field Type in der Entwicklung für SharePoint 2010 sowie 2007.
Falls Sie mehr Informationen darüber benötigen, könnte ich Ihnen gerne einen Screenshot per Mail schicken.
Melden Sie sich einfach kurz unter christian.gross@rk-consulting.de

Gruß aus Franken

Christian Groß 

SharePoint Solutions - www.solutions2share.net

Ohne Rang
58 Beiträge
cwicky Als Antwort am 23 Feb. 2011 17:40
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Herr Groß,

vielen Dank für Ihr Angebot. Ich habe Ihnen bereits eine Email geschrieben.

Gruß

cwicky

Ohne Rang
122 Beiträge
Christian Groß Als Antwort am 23 Feb. 2011 17:57
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo cwicky, leider habe ich bis jetzt noch keine Mail erhalten

Gruß

Christian Groß

SharePoint Solutions - www.solutions2share.net

Ohne Rang
58 Beiträge
cwicky Als Antwort am 24 Feb. 2011 13:13
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Herr Groß,

meine Mail ist aber verchickt worden.
Zur Sicherheit schicke ich noch ein nach.

Gruß

cwicky