gpt4 book ai didi

php - Magento - 使用 ajax 的网格过滤器重新加载整个页面

转载 作者:IT王子 更新时间:2023-10-29 00:19:43 25 4
gpt4 key购买 nike

我在 magento admin 中使用网格(扩展 Mage_Adminhtml_Block_Widget_Grid )来显示数据库表的内容。我在其他一些模块中看到,在构造函数中可以设置一个选项来使用 ajax 重新加载而不是页面重新加载
这是我的构造函数:

public function __construct() {
parent::__construct();
$this->setId('myGrid');
$this->setSaveParametersInSession(true);
$this->setVarNameFilter('my_filter');
$this->setUseAjax(true);
}

但是当我单击网格过滤器并单击搜索按钮时,它会重新加载网格 div 内的整个页面(包括页眉、页脚...)。
知道为什么会这样吗?

最佳答案

我找到了解决方案:
首先,我必须将以下函数添加到网格类中

 public function getGridUrl()
{
return $this->getUrl('*/*/grid', array('_current'=>true));
}

然后每个 ajax 调用将被发送到这个 url(和相应的 Controller 操作)而不是页面 url。
然后我将以下内容添加到布局 XML 文件中:

<module_controller_grid>
<reference name="root">
<block type="package/gridblockname" name="root" output="toHtml" />
</reference>
</module_controller_grid>

这会覆盖根元素并仅显示网格 block 。因此我的 ajax 调用只会加载更新的网格本身,不会包括页眉、页脚等。

关于php - Magento - 使用 ajax 的网格过滤器重新加载整个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8534313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com