问题描述
我使用的是 Kentico 12 MVC。 我在管理界面有一个用于我的自定义类的 UIForm 扩展器,我想向它添加一个自定义按钮。 所以,我是这样做的:
public class EditEventExtender : ControlExtender<UIForm>
{
public override void OnInit()
{
Control.PreRender += Control_PreRender;
Control.OnBeforeSave += Control_OnBeforeSave;
InitHeaderActions();
}
private void InitHeaderActions()
{
var page = (CMSUIPage)Control.Page;
var autoSubmitButton = new HeaderAction
{
ButtonStyle = ButtonStyle.Default,Text = ResHelper.GetString("Events.AutoSubmitProjects"),CommandName = "autosubmit"
};
page.AddHeaderAction(autoSubmitButton);
page.HeaderActions.ActionPerformed += HeaderActions_ActionPerformed;
}
public void HeaderActions_ActionPerformed(object sender,CommandEventArgs e)
{
switch (e.CommandName)
{
case "autosubmit":
// API call
break;
}
}
private void Control_PreRender(object sender,EventArgs e)
{
// prerender stuff
}
private void Control_OnBeforeSave(object sender,EventArgs e)
{
// custom code to save data externally
}
}
问题在于,在将 HeaderActions_ActionPerformed
分配给标题操作后,“保存”操作不再作为默认操作。基本上,当您点击保存时,HeaderActions_ActionPerformed
会被触发,事件 CommandName
等于“保存”,并且 Control_OnBeforeSave
不再被触发。
我还尝试通过 EventName 属性将此事件仅分配给我的自定义按钮,但它不起作用,而且我找不到任何有关它的有用文档。
private void InitHeaderActions()
{
var page = (CMSUIPage)Control.Page;
var autoSubmitButton = new HeaderAction
{
ButtonStyle = ButtonStyle.Default,CommandName = "autosubmit"
EventName = nameof(HeaderActions_ActionPerformed)
};
page.AddHeaderAction(autoSubmitButton);
}
public void HeaderActions_ActionPerformed(object sender,CommandEventArgs e)
{
// API call
}
关于如何达到它的任何想法? (如何只为自定义按钮分配事件,而不是自定义和“保存”)
提前致谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)