Kentico:让一个 webpart 使用 ajax 重新加载第二个 webpart

Kentico: have one webpart reload a second webpart using ajax

我尝试在 Kentico 中构建的场景是在一个 Web 部件中执行用户操作导致第二个 Web 部件 reload/update 而无需重新加载整个页面。

例如将商品添加到购物车:如果用户单击 'add item to cart' 按钮(第一个 Web 部件),则页面中的购物车(第二个 Web 部件)中的商品总数 header 无需重新加载整个页面即可更新。

我知道如何使用 ASP.NET MVC 应用程序执行此操作,但我还不知道如何使用 Kentico 执行此操作。

开箱即用是不可能的。您有两个选择:

  1. 创建 Web 部件的副本并根据需要进行调整。这是一个更清洁的解决方案,但可以避免。
  2. 为所需的 Web 部件打开 "Use update panel" 并通过 JavaScript 以编程方式进行刷新。如果它只是网站的一小部分(比如更新项目总数的文本),我不会害怕它。

我会将 "item total"(我猜你使用的是购物车预览)Web 部件包装在 div(使用容器或内容 before/after 属性)中并提供它class(例如 .cartInfo)。然后通过调用ASP.NET的__doPostBack().

查询并刷新底层UpdatePaneldiv
__doPostBack(document.querySelector(".cartInfo div").id,'');

然后您可以使用 addEventListener / attachEvent 将这段代码挂接到页面上的任何事件。在您的情况下,它将是 "Add to cart" 按钮的 click 事件。我的示例是 vanilla JS,但您当然可以使用 jQuery 来完成所有这些操作。