Kentico:让一个web部件使用ajax重载另一个web部件

Kentico: have one webpart reload a second webpart using ajax

本文关键字:web ajax 重载 部件 另一个 Kentico 一个      更新时间:2023-09-26

我试图在Kentico中构建的场景是在一个web部件中有一个用户操作,导致重新加载/更新第二个web部件而无需重新加载整个页面。

一个例子是将商品添加到购物车中:如果用户点击"将商品添加到购物车"按钮(第一个web部件),那么页面头中的购物车(第二个web部件)中的商品总数应该更新,而无需重新加载整个页面。

我知道如何用ASP做到这一点。. NET MVC应用程序,但我还没有弄清楚如何做到这一点与Kentico。

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

  1. 创建web部件的副本并根据您的需要进行调整。这是一个更干净的解决方案,但可以避免。
  2. 打开"使用更新面板"所需的web部件,并通过JavaScript编程刷新。如果这只是网站的一小部分(比如更新项目总数的文本),我不会担心。

我会包装"项目总数"(我猜你使用购物车预览)web部件在一个div(使用容器或内容之前/之后的属性),并给它一个类(例如.cartInfo)。然后通过调用ASP对其进行查询并刷新底层的UpdatePanel (div)。. NET的__doPostBack() .

__doPostBack(document.querySelector(".cartInfo div").id,'');
然后,您可以使用addEventListener/attachEvent将这段代码与页面上的任何事件挂钩。在您的情况下,它将是click事件的"添加到购物车"按钮。我的例子是普通的JS,当然你也可以用jQuery来做这些。