如何:自定义资产选取器

上次修改时间: 2015年3月9日

适用范围: SharePoint Server 2010

本文内容
在页面布局级别自定义资产选取器
将 AssetUrlSelector 控件添加到应用程序的任何 .aspx 页面
示例

利用资产选取器工具,创作者可更轻易地查找、分类并查看网站上可用的不同类型的资产。例如,您可以在当前网站集的任何 SharePoint Server 库或列表中查找、查看并插入一个 URL 或图像。可使用资产选取器插入内容,而无需键入指向该内容的 URL。发布网站的许多字段控件上都提供了资产选取器,例如:

  • HTML 编辑器字段控件

  • 图像字段控件

  • 摘要链接 Web 部件

"查找范围"窗格包含指向预定义 SharePoint Server 库的快捷方式。这些快捷方式旨在帮助创作者迅速地查找内容,而无需在网站集中的文件夹之间导航。在图像选取器中,这些快捷方式指向:

  • 当前网站的图像库。

  • 当前网站集的图像库。

在 URL 选取器中,这些快捷方式指向:

  • 当前网站的页面库。

  • 当前网站的文档库。

  • 当前网站集的文档库。

如果创作者经常需要插入在这些默认位置找不到的文档,那么您可以定义一个指向网站集中的其他位置的附加快捷方式。可以定义一个指向图像选取器的自定义快捷方式和一个指向 URL 选取器的自定义快捷方式。这些快捷方式在定义之后,将显示在"查找范围"窗格中的默认快捷方式的旁边。您只能在一个控件的范围内定义自定义选取器快捷方式:在模板文件中编辑某个控件的标记之后,只有从该控件启动的资产选取器才会显示指定的自定义快捷方式。

在页面布局级别自定义资产选取器

可以在页面布局中定义 RichHtmlField 控件或 RichImageField 控件的自定义选取器快捷方式:

  1. 导航到 \Program Files\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES\PublishingLayouts\PageLayouts,然后打开页面布局 .aspx 文件。

  2. 查找与使用资产选取器的控件关联的发布字段控件。例如,<PublishingWebControls:RichHtmlField> 代表 HTML 编辑器字段控件。

  3. 将以下属性中的一个或两个都添加到该标记:

    • DefaultAssetLocation:定义 URL 选取器中的自定义快捷方式的 URL。

    • DefaultAssetImageLocation:定义图像选取器中的自定义快捷方式的 URL。

      这些 URL 应该是网站集关联 URL,指向库、列表或网站集的其他位置,如 /ReusableContent。

      例如,以下 <PublishingWebControls:RichHtmlField> 控件分别定义了 URL 选取器的自定义快捷方式 /URLpicker 和图像选取器的自定义快捷方式 /imagepicker。

      <PublishingWebControls:RichHtmlField id="Content" FieldName="PublishingPageContent" DefaultAssetLocation="/URLpicker" DefaultAssetImageLocation= "/imagepicker" runat="server"/>
      

      类似地,以下 <PublishingWebControls:RichHtmlField> 控件定义了其图像选取器的自定义快捷方式。

      <PublishingWebControls:RichImageField id="Content" FieldName="PublishingPageImage" DefaultAssetImageLocation="/imagepicker" runat="server"/>
      
  4. 保存更改,并关闭页面布局 .aspx 文件。

将 AssetUrlSelector 控件添加到应用程序的任何 .aspx 页面

可向应用程序中的任意 .aspx 页面添加一个 <cms:AssetUrlSelector> 服务器控件。此服务器控件将呈现一个显示当前选择的 URL 的 TextBox 和一个 LinkButton,在单击该按钮时,将运行相应的 ECMAScript(JavaScript、JScript) 代码以启动资产选取器用户界面。

您可使用表 1 中所演示的 <cms:AssetUrlSelector> 控件的属性来自定义"资产选取器"对话框。

表 1. 用于自定义"资产选取器"对话框的属性

属性

说明

DefaultOpenLocationUrl

设置资产选取器的打开位置。

DefaultsToLastUsedLocation

设置为 True 以在最近使用位置打开资产选取器窗口。在第一次使用资产选取器时,它将在 DefaultOpenLocationUrl 属性所指定的位置打开。

如果您希望资产选取器窗口始终在 DefaultOpenLocationUrl 中指定的位置打开,则设置为 False。

DisplayLookInSection

设置成 True 以在资产选取器窗口中显示"查找"部分。若否,设置成 False。

OverrideDialogFeatures

覆盖"资产选取器"对话框中的多个属性。

OverrideDialogTitle

设置"资产选取器"对话框的标题。

OverrideDialogDescription

设置"资产选取器"对话框顶部附近所显示的说明。

OverrideDialogImageUrl

设置"资产选取器"对话框右上方所显示的图标。

AssetTextClientID

指定此属性时,此 ID 将用于查找资产选取器返回的 AssetText 值的 HTML 元素。

默认设置为子 TextBox 控件的 ClientID。

AsserUrlClientID

指定此属性时,此 ID 将用于查找资产选取器返回的 AssetUrl 值的 HTML 元素。

默认设置为子 TextBox 控件的 ClientID。

ClientCallback

当"资产选取器"对话框返回某个值时,将调用包含 ECMAScript(JavaScript、JScript) 函数的字符串。

默认值为 String.Empty。

UseImageAssetPicker

设置成 True 以使用资产选取器的图像版本。

设置为 False 以使用资产选取器的 URL 版本。默认情况下,图像选取器以缩略图视图打开。如果用户选择不指向某个图像的 URL,则应用程序将对用户发出警告。

AllowExternalURLs

设置成 True 以允许指定外部 URL。

默认值为 False。

AssetUrlTextBoxVisible

设置成 False 以隐藏 URL 文本框。

默认值为 True。

AssetPickerButtonVisible

设置为 False 以隐藏启动选取器窗口的按钮。

默认值为 True。

AutoPostBack

设置为 True 以使资产选取器在以下情况下自动回发:当用户通过在文本框中直接键入来更改选定的 URL 时;或当用户在资产选取器窗口中选择一个不同的项时。默认值为 False。

AsserUrlClientID

指定此属性时,此 ID 将用于查找资产选取器返回的 AssetUrl 值的 HTML 元素。

默认设置为子 TextBox 控件的 ClientID。

示例

此示例 <cms:AssetUrlSelector> 控件使用多个可用属性。

<CMS:AssetUrlSelector
    DefaultOpenLocationUrl="~SiteCollection/"
    DefaultToLastUsedLocation="false"
    DisplayLookInSection="true"
    OverrideDialogFeatures="resizable: no; status: yes; scroll: yes; help: no; dialogWidth:500px; dialogHeight:500px;"
    OverrideDialogTitle="Custom Picker Title"
    OverrideDialogDescription="Custom Picker Description"
    OverrideDialogImageUrl="~Site/PublishingImages/AssetPickerLogo.jpg"
    AssetTextClientID="testAssetTextClientIDCust"
    ClientCallback="function(returnedUrl) { window.alert('ClientCallback[AssetTextClientID]: ' + returnedUrl); }"
    id="assetSelectedImageCustomLauncher" 
    UseImageAssetPicker=true 
    runat="server" />

请参阅

概念

管理数字资产

数字资产管理编程模型

如何:自定义 HTML 编辑器字段控件

其他资源

管理 Web 内容