$.fn.yiiGridView.update('sopodetail-grid'+itemcd);
この関数は実行されていません。
コンソールに表示されCannot call method 'update' of undefined
ます。
ajax を介してデータを挿入しても更新されgridview
ないという問題があります。
foreach ループで複数のグリッド ビューをレンダリングし、それぞれを concatenating で一意の ID にしますitem_cd
。
function validateDetailForm()
{
var jForm = $('#sopodetail-form');
var data = jForm.serialize();
var itemcd = $('#cmbitemcd').val();
$.ajax({
type: 'POST',
url : jForm.attr('action'),
data: data,
dataType:'html',
success:function(data)
{
$(".info").animate({opacity: 1.0}, 3000).fadeOut("slow");
$.fn.yiiGridView.update('sopodetail-grid'+itemcd);
},
error: function(data) { // if error occured
alert('Error occured.please try again');
$('#detail-content').html(data);
},
});
}
これは、IDを連結する複数のグリッドビューをレンダリングする方法です...
foreach($modelSoDet as $modelSoDetObj):
$this->widget('zii.widgets.CDetailView', array(
'data'=>$modelSoDetObj,
'attributes'=>array(
'item_cd',
'item.item_name',
'item.item_desc',
'qty',
'qty_purchased'
)
));
$modelSoPoDetail = new Sopodetail();
$modelSoPoDetail->unsetAttributes();
$modelSoPoDetail->so_cd = $modelSoDetObj->so_cd;
$modelSoPoDetail->item_cd = $modelSoDetObj->item_cd;
$gridid = 'sopodetail-grid'.$modelSoPoDetail->item_cd;
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$modelSoPoDetail->search(),
'summaryText' => '',
'id'=>$gridid,
'columns'=>array(
'type',
'po_cd',
'qty'
)
));
endforeach;