2012-09-14 2 views
0

저는 Prado를 처음 사용하고 있으며 테이블에이 값을 채우는 방법에 문제가 있습니다. 지금까지, 이것이 내가 무엇을했는지 있습니다 :Prado Framework를 사용하여 데이터베이스의 테이블에 항목 채우기

Home.page :

<com:TForm> 
     <com:TRepeater ID="test"> 
     <prop:HeaderTemplate> 
      <table class="list" border="1px" borderWidth="1px" borderColor="#CCCCCC" style="margin-top: 30px;"> 
      <tr> 
       <th>Name</th> 
       <th>Email</th> 
      </tr> 
     </prop:HeaderTemplate> 
     <prop:ItemTemplate> 
      <tr> 
      <td><%# xxxxxxxx%></>  <!--this is the part where i will put my... --> 
      <td><%# xxxxxxxxxx%></>  <!--...data from database --> 
      </tr> 
     </prop:ItemTemplate> 

     </com:TRepeater> 
    </com:TForm> 

내 Home.php : 이미 내 데이터베이스와의 연결을 설정 한

  <?php 

      class Home extends TPage 
      { 
       protected function getListTest() 
       { 
        // Returns an array containing all the records from the table 
        return TestRecord::finder()->findAll(); 
       } 
       public function onLoad($param) 
       { 
        if (!$this->IsPostBack) 
        { 
         // Populate the Test Drop Down from database values 
         $this->test->DataKeyField = 'username'; 
         $this->test->DataKeyField = 'email'; 
         $this->test->DataSource = $this->ListTest; 

         $this->test->dataBind(); 
        } 
       }   
      } 
      ?> 

. 그럼 내 데이터베이스의 항목으로 테이블을 채울 수 있습니까?

답변

2

getListTest()가 올바른 레코드 배열 (var_dump 확인)을 반환한다고 가정하면 리피터의 $ this-> data 만 참조하면됩니다. 범위는 리피터입니다. 그래서 $ this는 repeater 객체의 별칭입니다. 리피터가 배열을 반복하면서 $ this-> 데이터를 현재 레코드로 변경합니다.

<prop:ItemTemplate> 
     <tr> 
     <td><%# $this->data->username %></>  
     <td><%# $this->data->email %></>  
     </tr> 
    </prop:ItemTemplate> 
+0

감사합니다.이 일은 .. TRepeater를 잠시 사용했지만 TDataGrid로 옮겼습니다. – lawrence