【问题标题】:Kentico: have one webpart reload a second webpart using ajaxKentico:让一个 webpart 使用 ajax 重新加载第二个 webpart
【发布时间】:2016-01-26 01:07:46
【问题描述】:

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

例如将商品添加到购物车:如果用户单击“将商品添加到购物车”按钮(第一个 Web 部件),则页面标题中的购物车中的商品总数(第二个 Web 部件)应该更新无需重新加载整个页面。

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

【问题讨论】:

    标签: javascript asp.net ajax postback kentico


    【解决方案1】:

    这是不可能的。你有两个选择:

    1. 创建 Web 部件的副本并根据需要进行调整。这是一种更清洁的解决方案,但可以避免。
    2. 为所需的 Web 部件打开“使用更新面板”并通过 JavaScript 以编程方式进行刷新。如果它只是针对网站的一小部分(例如更新项目总数的文本),我不会担心。

    我会将“项目总数”(我猜您使用购物车预览)Web 部件包装在一个 div 中(使用容器或内容之前/之后的属性)并给它一个类(例如.cartInfo)。然后通过调用 ASP.NET 的__doPostBack() 来查询它并刷新底层的UpdatePanel (div)。

    __doPostBack(document.querySelector(".cartInfo div").id,'');
    

    然后,您可以使用addEventListener / attachEvent 将这段代码与页面上的任何事件挂钩。在您的情况下,它将是“添加到购物车”按钮的 click 事件。我的示例是 vanilla JS,但您当然可以使用 jQuery 来完成所有这些操作。

    【讨论】:

    • 谢谢你的建议,我试试看。
    猜你喜欢
    • 2018-01-09
    • 2016-07-03
    • 2011-11-01
    • 2011-05-31
    • 2016-10-18
    • 1970-01-01
    • 2012-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多