我有一个困扰我几个小时的问题!
我已经创建了自定义保存操作和自定义编辑器:按照本教程:http://toadcode.blogspot.dk/2013/03/create-web-forms-for-marketers-custom.html
在自定义编辑器字段的后端代码的OnOK方法中,我有:
protected override void OnOK(object sender, EventArgs args)
{
SheerResponse.SetDialogValue(
ParametersUtil.NameValueCollectionToXml(new NameValueCollection()
{
{"TargetLogId", "SomeID" }
}));
base.OnOK(sender, args);
}
并在我的保存操作中:
public string TargetLogId { get; set; }
public override void Execute(Sitecore.Data.ID formid, Sitecore.Form.Core.Client.Data.Submit.AdaptedResultList fields, params object[] data)
{
/*
code
*/
}
问题是TargetLogId在我的保存操作中始终为空,而不是预期的“SomeID”值。我做错了什么?
编辑: XAML:
<?xml version="1.0" encoding="utf-8" ?>
<control xmlns="http://schemas.sitecore.net/Visual-Studio-Intellisense"
xmlns:def="Definition">
<SaveFormToCsvSettings>
<FormDialog ID="Dialog" Icon="Applications/32x32/gear.png">
<CodeBeside Type="xxx.yyy.SitecoreDialogs.ChooseTargetItem,xxx.yyy.SitecoreDialogs"/>
<Combobox ID="AvailableTargetLogs"></Combobox>
</FormDialog>
</SaveFormToCsvSettings>
</control>
在自定义保存操作项中,我指向Save Actions类和程序集。
当我在保存操作上单击编辑时,编辑器显示正常..并且触发了SheerResponse.SetDialogValue方法。这真的是正确的方法吗?