我尝试在 Kentico 中构建的场景是在一个 Web 部件中进行用户操作,导致重新加载/更新第二个 Web 部件,而无需重新加载整个页面。
一个示例是将商品添加到购物车:如果用户单击“将商品添加到购物车”按钮(第一个 Web 部件),则页眉中的购物车(第二个 Web 部件)中的商品总数应更新无需重新加载整个页面。
我知道如何使用 ASP.NET MVC 应用程序执行此操作,但我尚未弄清楚如何使用 Kentico 执行此操作。
最佳答案
这是不可能开箱即用的。您有两个选择:
- 创建 Web 部件的副本并根据您的需要进行调整。这是一个更干净的解决方案,但可以避免。
- 为所需的 Web 部件启用“使用更新面板”,并通过 JavaScript 以编程方式进行刷新。如果只是网站的一小部分(例如更新项目总数的文本),我不会担心它。
我将“项目总数”(我猜您使用购物车预览)Web 部件包装在 div 中(使用容器或内容之前/之后的属性),并给它一个类(例如 .cartInfo
)。然后查询它并通过调用 ASP.NET 的 __doPostBack()
刷新底层 UpdatePanel
(div
)。
__doPostBack(document.querySelector(".cartInfo div").id,'');
然后,您可以使用 addEventListener
/attachEvent
将这段代码挂接到页面上的任何事件。在您的情况下,这将是“添加到购物车”按钮的“点击”事件。我的示例是普通 JS,但您当然可以使用 jQuery 来完成这一切。
关于javascript - Kentico:使用 ajax 让一个 Web 部件重新加载第二个 Web 部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33354129/