所以我最近发现,您可以通过编辑FileSummary.config
文件来更改为EPi Server的文件管理系统中上传的每个文件定义元数据的字段。
在这个FileSummary.config
文件中,我可以使用XForms定义静态定义字段,但是是否可以使用例如来自页面或定义的网站类别的数据动态填充字段?
编辑)我认为可以在那里定义JavaScript,这可能是另一种选择。
答案 0 :(得分:0)
一种方法是使用控制适配器将一些控件添加到文件摘要编辑/添加控件
您可以在AdapterMappings.browser文件中注册适配器,如下所示:
<browsers>
<browser refID="Default">
<controlAdapters>
...
<adapter controlType="EPiServer.UI.Hosting.EditCustomFileSummary"
adapterType="MyLibrary.Adapters.FileSummaryAdapter, MyLibrary" />
</controlAdapters>
</browser>
</browsers>
然后,您需要创建一个派生自ControlAdapter
的控件类public class FileSummaryAdapter : ControlAdapter
{
}
在此处,您可以创建自己的控件并将其添加到“包裹”状态。 EditCustomFileSummary,这是我之前用于将Tags控件添加到文件摘要对话框的示例:
// Override the OnInit method to ensure our controls are added to the edit control
protected override void OnInit(EventArgs e)
{
// Some code omitted for clarity
...
// Reference our edit controls
EditControl = Control as EditCustomFileSummary;
UnifiedFile selectedFile = EditControl.SelectedFile;
SaveButton = EditControl.FindControl("SaveButton") as ToolButton;
// Hook into the save event so we can save the input from our custom controls
SaveButton.Click += OnSaveButtonClick;
...
_tagsControl.Text = selectedFile.Summary.Dictionary["Tags"].ToString();
...
EditControl.Controls.Add(_tagsControl);
}
然后你就可以加入由&#39; Save&#39;触发的保存事件。在摘要对话框中进行控制,以便将自定义字段保存为文件摘要属性
上的字典项public void OnSaveButtonClick(object sender, EventArgs e)
{
// Get a reference to the current file and the summary data
UnifiedFile selectedFile = EditControl.SelectedFile;
// Get the tags added
selectedFile.Summary.Dictionary["Tags"] = _tagsControl.Text;
}
您添加的方式和控件当然可以通过适用于您的方案的任何方法派生。