微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何让 DNN 编辑控件编辑正确的项目?

如何解决如何让 DNN 编辑控件编辑正确的项目?

我有一个 2sxc 应用,它有一个列表和一个详细信息视图。

我有两个模板,一个用于列表,一个用于详细信息。列表已启用“列表”。 “详细信息”没有。

详细信息视图设置为当查询字符串为“/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>
}

就像这样:

enter image description here

,

说了这么多,我确实相信有一种方法可以做到这一点,但是您必须使用所有 2sxc 功能并在代码中做更少的事情。我更喜欢 a) 在我看来用代码来做。我从 QueryString 中获取文章 slug 并查找正确的文章等。 b) 我也更喜欢我的编辑器不在 Dnn 的编辑状态,我尽量避免让他们需要知道有一个 Dnn 操作菜单下拉菜单。

但是您可以改为使用 2sxc 查询来做同样的事情,该查询将使用过滤器来匹配您的 slug (UrlKey)。然后正确的项目“默认”流馈送到视图将(或应该)连接到 Dnn 操作编辑菜单项。因此,在您创建查询之后,唯一的额外步骤是在您的视图中,向下滚动并展开 Data for this Template 部分并选择现在将执行将 UrlKey 与文章匹配并将其选择为“the一个。”

enter image description here

,

@Aaron 我相信@Jeremy 是对的 - 如果在加载视图之前使用查询来过滤数据,那么编辑可能会按照您的预期进行。

如果你在代码中过滤,它可能不会。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。