その列の並べ替えを無効にしたくない場合 (無効にすることもできます)、唯一の方法は独自のウィジェットを使用することです。このTbDataColumn
クラスは、何らかの理由で TbGridView にハード コードされているためです。(ここで参照できますソース)
から継承し、その関数をオーバーライドして、代わりにクラスTbGridView
を呼び出す関数に置き換えることができます。EDataColumn
次に、ETbDataColumn
からの継承で同じことを行い、TbDataColumn
必要な関数をオーバーライドするだけです。
例えば
Yii::import('Bootstrap.widgets.TbGridView');
Yii::import('ext.widgets.ETbDataColumn');
/**
* Bootstrap grid data column.
*/
class ETbGridView extends TbGridView
{
public function createDataColumn($text)
{
if (!preg_match('/^([\w\.]+)(:(\w*))?(:(.*))?$/', $text, $matches))
throw new CException(Yii::t('zii', 'The column must be specified in the format of "Name:Type:Label", where "Type" and "Label" are optional.'));
$column = new ETbDataColumn($this);
......
しかし、恩返しをしたいという気持ちがある場合は、いつでも YiiBootstrapTbGridView
を変更して、パラメータを使用して使用する列クラスを決定し、ここから YiiBootstrap にプル リクエストを送信できます: https://bitbucket.org/Crisu83/yii-bootstrap /pull-requests
ソースコードに変更を加えて、他のすべての人のためにこの問題を解決するには:)