我正在尝试在我的应用程序中制作类似查找字段的内容。
目的是用户单击浏览按钮,它会弹出一个对话框(小部件),里面有一个网格(CGridView)。用户可以选择一行,并将“描述”列发送到我的表单中的文本字段。
我已经通过在表单中注册以下脚本来完成这部分:
Yii::app()->clientScript->registerScript('scriptName', '
function onSelectionChange()
{
var keys = $("#CGridViewUsuario > div.keys > span");
$("#CGridViewUsuario > table > tbody > tr").each(function(i)
{
if($(this).hasClass("selected"))
{
$("#Funcionario_UsuarioId").val($(this).children(":nth-child(1)").text());
}
});
}
');
还有我的小部件:
<?php $this->beginWidget('zii.widgets.jui.CJuiDialog', array(
'id'=>'mydialog',
'options'=>array(
'title'=>'Usuário',
'width' => 'auto',
'autoOpen'=>false,
),
));
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider' => Usuario::model()->searchByLogin($model->UsuarioId),
'id' => 'CGridViewUsuario',
'filter' => Usuario::model(),
'columns' => array(
'Login',
'Nome',
),
'htmlOptions' => array(
'style'=>'cursor: pointer;'
),
'selectionChanged'=>'js:function(id){ onSelectionChange(); }',
));
$this->endWidget('zii.widgets.jui.CJuiDialog');
?>
现在我有两个任务要做:
当用户单击浏览按钮时,CGridView 应该会出现,其中过滤器已经填充了他在表单中键入的输入。
让 CGridView 过滤器工作。
别忘了,如果这一切运行成功,当用户点击保存按钮时,我将不得不在模型中保存查找字段的相应 ID。