有些时候,我们需要按钮去触发js/jq事件,这个时候我们可以自定义按钮其实现该功能。
this.MakeAction("","","设置套餐服务","", GridActionParameterTypesEnum.SingleId,null,500).SetOnClickScript("report2").SetShowInRow().SetHideOnToolBar().SetButtonClass("layui-btn-warm"),
如果是在"IsQuickDebug": true,调试程序真是的是非常的爽。
但是要上线时候"IsQuickDebug": false,配置页面按钮功能时,就有点不爽了。我按钮怎么找不到了?
关于这个问题,自定义js按钮的原理是,前面两个参数(第一个是控制器,第二个是控制器方法),需要配置成有权限访问的地址。那么前面两个参数这只为空,肯定是找不到页面了,也就找不到权限了。那么我们只需要在不是区域内的控制器设置一个访问级别低的空方法即可解决问题。
首先在Home控制器中新建一个ButtonToAccess空方法。打上 [AllRights]权限标签。
[AllRights]
public IActionResult ButtonToAccess()
{
return Content("OK");
}
按钮改成
this.MakeAction("Home","ButtonToAccess","设置套餐服务","", GridActionParameterTypesEnum.SingleId,null,500).SetOnClickScript("report2").SetShowInRow().SetHideOnToolBar().SetButtonClass("layui-btn-warm"),
这样子,按钮在非调试环境和发布后就可以正常显示了。