2012-05-29 2 views
0

CListView가 있고 단추가있는 뷰를 내부에서 다시 볼 수 있습니다. 클릭하면 CJUIDialog가 열립니다.CJUIDialog가 CListView 호출기 컨트롤러와 함께 작동하지 않습니다.

하지만 페이지 컨트롤러를 사용하여 다음 페이지로 이동합니다. CJUIDialog 내용은 버튼을 클릭하지 않고 페이지로로드됩니다.

왜 그런 식으로 생각하나요?

누구든지 나를 도울 수 있다면 좋을 것입니다. 감사합니다.

+0

당신이 CJUIDialog 세대의 코드를 가하고 있습니다 어디? CListView의 항목보기에서? – sucotronic

+0

예 ... 항목보기 내에 있습니다. – era

+0

이 문제입니까? – era

답변

1

좋아, YII 그래서 나는 다음과 같은 방법으로 항목을보기에서 처리 상호 작용을 꺼내 추천 이벤트와 충돌하지 않도록, 자동 방식으로 컨트롤의 많은에 대한 ID를 생성 다음에

을 하여 CListView가 생성되는 페이지 : 항목보기 페이지에서

$this->widget('zii.widgets.CListView', array(
    'dataProvider'=>$dataProvider, 
    'itemView'=>'_post', // refers to the partial view named '_post' 
    'sortableAttributes'=>array(
     'title', 
     'create_time'=>'Post Time', 
    ), 
)); 
$this->beginWidget('zii.widgets.jui.CJuiDialog', array(
    'id'=>'dialog', 
    'options'=>array(
     'title'=>'Dialog', 
     'autoOpen'=>false, 
    ), 
)); 
$this->endWidget('zii.widgets.jui.CJuiDialog'); 

: 당신이 우리와 같은 데이터 행 뭔가를 (해야 할 경우

echo CHtml::htmlButton('Button',array('onclick' => '$("#dialog").dialog("open");')); 

해당 데이터의 id 속성 가져 오기), 단추를 클릭 할 때 데이터를 수신하는 사용자 정의 javascript 함수를 작성할 수 있습니다.

echo CHtml::htmlButton('Button',array('onclick' => 'myFunction('.$data->id.')')); 

그리고 앞의 예는 다음과 같습니다

<?php 
$this->widget('zii.widgets.CListView', array(
    'dataProvider'=>$dataProvider, 
    'itemView'=>'_post', // refers to the partial view named '_post' 
    'sortableAttributes'=>array(
     'title', 
     'create_time'=>'Post Time', 
    ), 
)); 
$this->beginWidget('zii.widgets.jui.CJuiDialog', array(
    'id'=>'dialog', 
    'options'=>array(
     'title'=>'Dialog', 
     'autoOpen'=>false, 
    ), 
)); 
$this->endWidget('zii.widgets.jui.CJuiDialog'); 
?> 
<script type="text/javascript"> 
function myFunction(id) { 
    // you can put whatever you need inside the dialog 
    $("#dialog").html(id); 
    // open the dialog 
    $("#dialog").dialog("open"); 
} 
</script> 
+0

k ... 멋진 장면 ... 잘 작동합니다 ... 그렇다면 백개의 항목이 있다면 고유 ID가있는 100 개의 대화 상자가 있어야합니다. 또는 항목 페이지에서 대화 상자로 매개 변수를 보내는 방법이 있습니까? – era

+0

두 번째 시나리오에 대한 자세한 내용으로 코드를 업데이트했습니다. 단 하나의 Jquery UI 대화 상자가 있음을 유의하십시오. 자바 스크립트를 통해 매개 변수로 전달할 수있는 항목보기의 $ 데이터에서 가져온 일부 데이터를 기반으로 자바 스크립트를 통해 내용을 변경할 수 있습니다. – sucotronic

+0

덕분에 .. – era

관련 문제