我已经为此工作了很长时间,而且我无法理解我做错了什么(yii初学者所以请耐心等待我)。
我在我的视图代码中有这段代码
echo CHtml::dropDownList('symptomCategory',
'', // selected item from the $data
$this->getSymptomCategories(),
array(
'id'=>'categorySelectDropDown',
'prompt'=>"Select Symptom Category",
));
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'symptoms-grid',
'selectableRows'=>1, //ability to select one symptom at a time
'dataProvider'=>$model2->search(),
//'htmlOptions'=>array('id'=>'symptomsSelectGrid'),
'columns'=>array(
'symptomCode',
'title',
'inclusions',
'exclusions',
'symptomCategory',
),
));
我的js功能是这样的:
$('#categorySelectDropDown').change(function()
{
var symptomCategory = $('#categorySelectDropDown').val();
$('#symptoms-grid').yiiGridView('update',
{
data: symptomCategory.serialize()
});
return false;
});
我已尝试使用$(this).serialize()。反正。
根据我在网上发现的例子,这应该有用,但是没有,它不会更新cgridview。 $ this-> getSymptomCategories()返回一个数组数组(' A' =>' A'' B' =>' B& #39;等等。)
BTW我正在创建一个模型2 =新的症状;在由不同模型的控制器呈现的视图内部,因为我想使用gridview中的选项来填充其他模型的形式。任何帮助,文档(避免在网上找到任何有用的),建议等都将非常感激。谢谢oyur时间
答案 0 :(得分:1)
尝试这种更新yiiGridView
的方式 $.fn.yiiGridView.update('symptoms-grid', {
data: $('#symptomCategory').serialize() // your form id
});
yiiGridView似乎没有更新可能有很多原因,其中一个原因是AJAX请求没有被发送,另一个常见原因是搜索条件逻辑不正确,或者请求的操作没有通过将数据发布到模型,导致返回相同的数据,使其看起来没有更新。
查看AJAX请求是否从firebug / console等发送到服务器。如果它正在运行,那么检查发布数据是否正确,最后检查模型+控制器逻辑是否正确,CActiveDataProvider
的标准是反映您的搜索条件