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 Fieldtype Properties

Geprüfte Antwort Dieser Beitrag hat 4 Antworten

Ohne Rang
14 Beiträge
Fabian Klein-Ridder erstellt 12 Juli 2011 11:52
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo zusammen,

ich bin neu hier und hoffe das mir jemand weiterhelfen kann.

Ich bin dabei im SharePoint 2010 einen neuen Feldtypen zu erstellen. Soweit kein Problem. Allerdings benötige ich einen dynamischen Bereich für die Eigenschaften des Listenfeldes.

Einzelne Properties über die fldtypes*.xml einzufügen geht problemlos, allerdings muss der Bereich bei mir dynamisch aufgebaut werden, da ich unterschiedliche Einstellungsmöglichkeiten bereitstellen muss.

Ziel soll es sein eine externe Datenquelle anzusteuern (KEIN BCS). Hierzu steht mir eine Middleware (Sprache C#) zur Verfügung, die mir die Values des Feldes zurückgeben. Der Middleware kann ich übergeben welche Information ich abfragen möchte. Um die Daten zu erhalten muss ich jedoch für unterschiedliche Informationen unterschiedliche Übergabeparameter an die Middleware senden. Welche Informationen bereit stehen und zu welchen Informationen welche Aufrufparameter benötigt werden stellt mir die Middleware über eine XML Datei bereit.

Ich möchte nun beim Anlegen eines Feldes in einer Liste meinen Feldtypen auswählen können und im Unteren Bereich eine Auswahl der verfügbaren Informationen aus der Middleware anzeigen und bei Auswahl einer Information die benötigten Übergabeparameter anzeigen um diese vom Admin konfigurieren zu lassen. Der Admin kann dann auf die Aufrufparameter weitere Felder der Liste oder feste Werte schalten.

Dafür benötige ich aber wie bereits erwähnt eine Dynamische Propertypage für meinen Feldtypen.

Habe es mit folgendem Parameter in der fldtyp*.xml versucht:

<FieldName="FieldEditorUserControl">/_controltemplates/DynSFieldProperties.ascx</Field>

Bei diesem Ansatz erhalte ich allerdings den folgenden Fehler im IIS:

Event code: 3005

Event message: Es ist eine unbehandelte Ausnahme aufgetreten.

Event time: 12.07.2011 07:18:01

Event time (UTC): 12.07.2011 05:18:01

 

Event ID: b8a8c2589fc94d4abd9be3c073d51069

Event sequence: 6

Event occurrence: 1

Event detail code: 0

 

Application information:

Application domain: /LM/W3SVC/603990877/ROOT-1-129549213588436019

Trust level: WSS_Minimal

Application Virtual Path: /

Application Path: C:\inetpub\wwwroot\wss\VirtualDirectories\80\

Machine name: N-FKR-SPS

 

Process information:

Process ID: 5020

Process name: w3wp.exe

Account name: FKR\spsservice

 

Exception information:

Exception type: InvalidCastException

Exception message: Das Objekt des Typs "ASP._controltemplates_dynsfieldproperties_ascx" kann nicht in Typ "Microsoft.SharePoint.WebControls.IFieldEditor" umgewandelt werden.

 

Request information:

Request URL: http://n-fkr-sps/_layouts/FldNewEx.aspx?List=1B789370E4Es ist eine unbehandelte Ausnahme aufgetreten.D9C50Es ist eine unbehandelte Ausnahme aufgetreten.D41A7Es ist eine unbehandelte Ausnahme aufgetreten.DB067Es ist eine unbehandelte Ausnahme aufgetreten.D69A74BBEF4731D&Source=http12.07.2011 07:18:01AEs ist eine unbehandelte Ausnahme aufgetreten.FEs ist eine unbehandelte Ausnahme aufgetreten.FnEs ist eine unbehandelte Ausnahme aufgetreten.DfkrEs ist eine unbehandelte Ausnahme aufgetreten.DspsEs ist eine unbehandelte Ausnahme aufgetreten.FListsEs ist eine unbehandelte Ausnahme aufgetreten.FDynSTestEs ist eine unbehandelte Ausnahme aufgetreten.FAllItemsEs ist eine unbehandelte Ausnahme aufgetreten.Easpx12.07.2011 07:18:01FInitialTabId12.07.2011 07:18:01DRibbon%252EList%26VisibilityContext%3DWSSTabPersistence&IsDlg=1&FieldTypeParam=DynS&DisplayNameParam=&DescriptionParam=&VldFormulaParam=&VldMessageParam=

 

Request path: /_layouts/FldNewEx.aspx

User host address: 172.16.26.11

 

User: FKR\Administrator

Is authenticated: True

Authentication Type: NTLM

Thread account name: FKR\spsservice

 

Thread information:

Thread ID: 6

Thread account name: FKR\spsservice

Is impersonating: False

Stack trace: bei Microsoft.SharePoint.ApplicationPages.FieldCustomizationPage.CreateChildControls()

bei Microsoft.SharePoint.ApplicationPages.FieldNewPage.CreateChildControls()

bei System.Web.UI.Control.EnsureChildControls()

bei Microsoft.SharePoint.ApplicationPages.FieldCustomizationPage.OnLoad(EventArgs e)

bei Microsoft.SharePoint.ApplicationPages.FieldNewPage.OnLoad(EventArgs e)

bei System.Web.UI.Control.LoadRecursive()

bei System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

 

Custom event details:

 

 

Hat jemand eine Idee oder kennt einen guten Blogeintrag um hier eine eigene Control Page einzubinden?

Danke

 

Gruß

Fabian

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 12 Juli 2011 12:14
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Peter Pan"]Exception message: Das Objekt des Typs "ASP._controltemplates_dynsfieldproperties_ascx" kann nicht in Typ "Microsoft.SharePoint.WebControls.IFieldEditor" umgewandelt werden[/quote]

Implementiert Dein Editor Control denn auch IFieldEditor?

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
14 Beiträge
Fabian Klein-Ridder Als Antwort am 12 Juli 2011 12:35
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andi,

Danke für deine schnelle Antwort.

ich hatte da mal nen Ausschnitt drin. Hat allerdings nicht geklappt. Vielleicht hab ich da was falsch gemacht. Find das grade nicht wieder.

Wie muss das denn da Implementiert werden?

 

Danke Gruß

Fabian

Ohne Rang
96 Beiträge
Stefan Walter Als Antwort am 12 Juli 2011 12:43
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

zum Beispiel:

--------

using System;

namespace Tests.DemoField
{
 public class DemoField : System.Web.UI.UserControl, Microsoft.SharePoint.WebControls.IFieldEditor
 {
  /// <summary>
  /// occurs while field settings should be loaded
  /// </summary>
  /// <param name="field"></param>
  public void InitializeWithField(Microsoft.SharePoint.SPField field)
  {

  }

  /// <summary>
  /// occurs before field settings will be stored
  /// </summary>
  /// <param name="field">field which settings should be stored</param>
  /// <param name="isNewField">inidicator if field is created or modified</param>
  public void OnSaveChange(Microsoft.SharePoint.SPField field, bool isNewField)
  {

  }
 }
}

www.stefan-walter.net
SharePoint MCITP, MCPD, MCTS, MOS

 

Ohne Rang
14 Beiträge
Fabian Klein-Ridder Als Antwort am 12 Juli 2011 12:52
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Jo sauber.

Fehlte nurnoch

 

public bool DisplayAsNewSection

{

get { return true; }

}

 

Aber so gehts.

 

Vielen Dank euch beiden.

 

Gruß

Fabian