如何解决如何让 DNN 编辑控件编辑正确的项目?
我有两个模板,一个用于列表,一个用于详细信息。列表已启用“列表”。 “详细信息”没有。
详细信息视图设置为当查询字符串为“/details/”时,它显示单个属性详细信息。
当用户点击列表中的内容时,它会将他们带到详细信息视图。详细信息视图使用详细信息模板,URL 类似于 /properties/details/my-nice-property。
当内容编辑器使用 DNN 黑白铅笔图标编辑属性时,它会编辑列表中的第一项,而不是他们正在查看的属性。
有没有办法让 DNN 编辑图标编辑内容编辑器正在查看的属性?
我意识到这似乎是一个小问题,内容编辑器应该使用 2sxc 控件进行编辑,而不是 DNN 控件。但是有没有办法确保 DNN 控件编辑我们正在查看的特定属性,而不仅仅是列表中的第一项?
解决方法
如果您指的是默认的 Dnn Action 下拉菜单,我认为您无法控制它。 2sxc 只是连接它来编辑第一个默认项目。
我们在详细信息页面/视图上做的是明确地在页面上放置一个漂亮但编辑的按钮。这是一个使用 Bootstrap 的示例。基本上我们所做的只是一个自定义的 2sxc 点击事件,它回调 Dnn 弹出我们给它的 EntityId 的编辑界面。
由于页面上有一个很好的“编辑我”按钮,它(希望)否定了用户期望或需要转到该 Dnn 操作菜单。下面的例子甚至有一个 FontAwesome 图标。这假设您已经在变量中找到了正确的文章。
@if(Edit.Enabled)
{
<a class="btn btn-secondary text-white mb-1"
@* this is a great example of how to make a different button than the normal 2sxc hover-blue-circles *@
onclick='$2sxc(@Dnn.Module.ModuleID).manage.run({"action": "edit","entityId": @detail.EntityId})'>
<i class="fas fa-edit mr-2" aria-hidden="true"></i>
<span>Edit: @detail.EntityTitle</span>
</a>
}
就像这样:
,说了这么多,我确实相信有一种方法可以做到这一点,但是您必须使用所有 2sxc 功能并在代码中做更少的事情。我更喜欢 a) 在我看来用代码来做。我从 QueryString 中获取文章 slug 并查找正确的文章等。 b) 我也更喜欢我的编辑器不在 Dnn 的编辑状态,我尽量避免让他们需要知道有一个 Dnn 操作菜单下拉菜单。
但是您可以改为使用 2sxc 查询来做同样的事情,该查询将使用过滤器来匹配您的 slug (UrlKey)。然后正确的项目“默认”流馈送到视图将(或应该)连接到 Dnn 操作编辑菜单项。因此,在您创建查询之后,唯一的额外步骤是在您的视图中,向下滚动并展开 Data for this Template
部分并选择现在将执行将 UrlKey 与文章匹配并将其选择为“the一个。”
@Aaron 我相信@Jeremy 是对的 - 如果在加载视图之前使用查询来过滤数据,那么编辑可能会按照您的预期进行。
如果你在代码中过滤,它可能不会。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。