Wie in anderen Antworten erwähnt, sollten Sie eine benutzerdefiniertes Feld für diese Funktionalität. Anstatt die Browse-Funktionalität jedoch selbst zu implementieren, sollten Sie einen Blick auf das AssetUrlSelector-Steuerelement werfen, das im Microsoft.SharePoint.Publishing.WebControls-Namensraum zu finden ist (Sie können das Steuerelement mit der Option .NET-Reflektor Werkzeug).
Wenn Sie das benutzerdefinierte Feld implementieren, können Sie den AssetUrlSelector zum benutzerdefinierten UserControl hinzufügen und ihn sichtbar machen, wenn sich das Feld im Bearbeitungsmodus befindet. Unten sehen Sie ein Beispiel für diesen Ansatz:
<%@ Control Language="C#" %>
<%@ Assembly Name="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="publishing" Namespace="Microsoft.SharePoint.Publishing.WebControls" Assembly="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<SharePoint:RenderingTemplate ID="CustomFieldControl" runat="server">
<Template>
<publishing:AssetUrlSelector id="CustomUrlSelector" runat="server" />
</Template>
</SharePoint:RenderingTemplate>
Das obige Beispiel zeigt nur, wie man das Steuerelement zum benutzerdefinierten Feld hinzufügt. Stellen Sie sicher, dass Sie das AssetUrlSelector-Steuerelement ausblenden, wenn es sich nicht im Bearbeitungsmodus befindet.