Yii 2 在选项卡内容中渲染页面

Posted

技术标签:

【中文标题】Yii 2 在选项卡内容中渲染页面【英文标题】:Yii 2 Render Page Inside Tab Content 【发布时间】:2015-04-19 01:19:49 【问题描述】:

我有一个标签小部件:

echo Tabs::widget([
    'items' => [
        [
            'label' => 'Add Staff', 
            'icon' => 'user',
            'content' => "Add Staff page loaded here",
            'active' => true
        ],
        [
            'label' => 'Store Configuration',
            'content' => 'Store Configuration page loaded here',
            //'headerOptions' => [...],
            'options' => ['id' => 'myveryownID'],
        ],
        [
            'label' => 'Transaction',
            'items' => [
                 [
                     'label' => 'Add Transaction',
                     'content' => 'Add Transaction page loaded here',
                 ],
                 [
                     'label' => 'View Transaction',
                     'content' => 'View Transaction page loaded here',
                 ],
            ],
        ],
    ],
]);

如何在选项卡内容中呈现页面(如果可能,无需重新加载整个页面)?可能吗?我试过这个:

'content' => "<?= $this->render('createbizstaff', ['searchModel' => $searchModel,'dataProvider' => $dataProvider,]); =>"

但它只会产生这个错误:

Getting unknown property: yii\web\View::render

如果您知道如何处理此问题,请告诉我。

【问题讨论】:

【参考方案1】:

您正试图在需要字符串的地方传递 php 表达式。 yii\web\View::render() 返回一个字符串,因此您的代码应为:

'content' => $this->render('createbizstaff', [
    'searchModel' => $searchModel,
    'dataProvider' => $dataProvider,
]),

【讨论】:

【参考方案2】:

尝试使用 Pjax 小部件。您可以加载该内容的一部分,而无需重新加载整个页面。但它会在达到超时并且仍在加载时重新加载整个页面。 检查这个人的教程。 http://blog.neattutorials.com/yii2-pjax-tutorial/

【讨论】:

以上是关于Yii 2 在选项卡内容中渲染页面的主要内容,如果未能解决你的问题,请参考以下文章

在 IE8 中将 cssPIE 用于 js 选项卡内容不呈现

选项卡内的 EXTJS 网格 - 过滤器仅适用于页面刷新

使用条件渲染的选项卡导航

选项卡内容布局显示在其他选项卡中

在材质 UI 中动态更改选项卡内容

在 Yii2 GridView 页面更改时维护 Bootstrap 选项卡