gpt4 book ai didi

php - YII CListView 如何将 id 添加到 itemwrapper

转载 作者:太空宇宙 更新时间:2023-11-03 21:46:57 26 4
gpt4 key购买 nike

在 CListView 中有一个名为“itemsCssClass”的属性,它基本上将 HTML 类属性添加到 Itemwrapper。

如果我想添加一个 ID 或任何其他 htmlOptions,我将如何在该包装器上添加......?

我的代码是:

    <?php $this->widget('zii.widgets.CListView', array(
'dataProvider'=>$model->search(),
'viewData'=>array('x'=>''),
'itemView'=>'_classifieds',
'id'=>'boa_ads',
'itemsCssClass'=>'test'
));

此代码将生成此 HTML:

<div id="boa_ads" class="list-view">
<div class="summary">Displaying 1-4 of 4 results.</div>

<div class="items"><!-- HERE ID LIKE TO ADD AN ID-->
----ITEMS GOES HERE ----
</div>

</div>
</div>

提前感谢您的帮助

最佳答案

来自 Yii 的来源:

public function renderItems()
{
echo CHtml::openTag($this->itemsTagName,array('class'=>$this->itemsCssClass))."\n";
.....
echo CHtml::closeTag($this->itemsTagName);
}

我刚刚看到 class 属性被传递给 itemsTagName,所以您可能必须扩展 CListView 才能做到这一点。

您可以创建一个 CCustomListView 类(在 application/widgets 文件夹内),它从 CListView 扩展并覆盖 renderItems() 函数。 例如:

<?php

Yii::import("zii.widgets.CListView");

class CCustomListView extends CListView
{

public $itemsHtmlOptions;
/**
* Renders the data item list.
*/
public function renderItems()
{
echo CHtml::openTag($this->itemsTagName, array_merge(array('class'=>$this->itemsCssClass), $this->itemsHtmlOptions))."\n";
$data=$this->dataProvider->getData();
if(($n=count($data))>0)
{
$owner=$this->getOwner();
$viewFile=$owner->getViewFile($this->itemView);
$j=0;
foreach($data as $i=>$item)
{
$data=$this->viewData;
$data['index']=$i;
$data['data']=$item;
$data['widget']=$this;
$owner->renderFile($viewFile,$data);
if($j++ < $n-1)
echo $this->separator;
}
}
else
$this->renderEmptyText();
echo CHtml::closeTag($this->itemsTagName);
}
}

在您看来,您可以像这样使用它:

<?php $this->widget('application.widgets.CCustomListView', array(
'dataProvider'=> 'your_data_provider',
'itemsHtmlOptions' => array('style' => 'color:blue', 'id' => 'your_id'),
'itemView'=>'your_item_view',
'template'=>'your_template',
)); ?>

因此 itemsHtmlOptions 中的样式将应用于 listview

此链接对您也很有用:How to extend CListView in order to remove extra yii added markup?

关于php - YII CListView 如何将 id 添加到 itemwrapper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20089025/

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