如何:自定义资产选取器
上次修改时间: 2015年3月9日
适用范围: SharePoint Server 2010
本文内容
在页面布局级别自定义资产选取器
将 AssetUrlSelector 控件添加到应用程序的任何 .aspx 页面
示例
利用资产选取器工具,创作者可更轻易地查找、分类并查看网站上可用的不同类型的资产。例如,您可以在当前网站集的任何 SharePoint Server 库或列表中查找、查看并插入一个 URL 或图像。可使用资产选取器插入内容,而无需键入指向该内容的 URL。发布网站的许多字段控件上都提供了资产选取器,例如:
HTML 编辑器字段控件
图像字段控件
摘要链接 Web 部件
"查找范围"窗格包含指向预定义 SharePoint Server 库的快捷方式。这些快捷方式旨在帮助创作者迅速地查找内容,而无需在网站集中的文件夹之间导航。在图像选取器中,这些快捷方式指向:
当前网站的图像库。
当前网站集的图像库。
在 URL 选取器中,这些快捷方式指向:
当前网站的页面库。
当前网站的文档库。
当前网站集的文档库。
如果创作者经常需要插入在这些默认位置找不到的文档,那么您可以定义一个指向网站集中的其他位置的附加快捷方式。可以定义一个指向图像选取器的自定义快捷方式和一个指向 URL 选取器的自定义快捷方式。这些快捷方式在定义之后,将显示在"查找范围"窗格中的默认快捷方式的旁边。您只能在一个控件的范围内定义自定义选取器快捷方式:在模板文件中编辑某个控件的标记之后,只有从该控件启动的资产选取器才会显示指定的自定义快捷方式。
在页面布局级别自定义资产选取器
可以在页面布局中定义 RichHtmlField 控件或 RichImageField 控件的自定义选取器快捷方式:
导航到 \Program Files\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES\PublishingLayouts\PageLayouts,然后打开页面布局 .aspx 文件。
查找与使用资产选取器的控件关联的发布字段控件。例如,<PublishingWebControls:RichHtmlField> 代表 HTML 编辑器字段控件。
将以下属性中的一个或两个都添加到该标记:
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"/>
保存更改,并关闭页面布局 .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" />