2010-05-19 7 views
1

Je suis nouveau à PRADO, j'ai un fichier Home.page avec le code:Afficher les valeurs dans TDropDownList dans PRADO

<%@ Title="Contact List" %> 

<h1>Contact List</h1> 

<a href="<%= $this->Service->constructUrl('insert')%>">Create New Contact</a> 
<br/> 
<com:TForm> 
<com:TDropDownList ID="personInfo"> 
    <com:TListItem Value="value 1" Text="item 1" /> 
    <com:TListItem Value="value 2" Text="item 2" Selected="true" /> 
    <com:TListItem Value="value 3" Text="item 3" /> 
    <com:TListItem Value="value 4" Text="item 4" /> 
</com:TDropDownList> 
</com:TForm> 

& Home.php avec le code

<?php 
class Home extends TPage 
{ 
    /** 
    * Populates the datagrid with user lists. 
    * This method is invoked by the framework when initializing the page 
    * @param mixed event parameter 
    */ 
    public function onInit($param) 
    { 
     parent::onInit($param); 
     // fetches all data account information 
     $rec = ContactRecord::finder()->findAll(); 
    } 
} 
?> 

le $ rec contient tableau de toutes les valeurs.

Maintenant, je veux montrer tous les noms dans la liste déroulante. J'ai fait de mon mieux mais j'échoue. Quelqu'un peut-il m'aider? Merci

Répondre

2

Vous pouvez remplir le DataTextField et DataValueField du dropdownlist avec les noms de colonnes de table de base de données à utiliser comme le texte de la TListItem et la valeur respectivement:

<?php 
class Home extends TPage 
{ 
    /** 
    * Populates the datagrid with user lists. 
    * This method is invoked by the framework when initializing the page 
    * @param mixed event parameter 
    */ 
    public function onInit($param) 
    { 
     parent::onInit($param); 
     // fetches all data account information 
     $rec = ContactRecord::finder()->findAll(); 
     $this->personInfo->DataSource = $rec; 
     $this->personInfo->DataTextField = "columnNameToUseAsText"; 
     $this->personInfo->DataValueField = "columnNameToUseAsValue"; 
     $this->personInfo->DataBind(); 
    } 
} 
?> 

Alternativement, vous pouvez le faire dans le code HTML front- fin:

<com:TDropDownList ID="personInfo" DataTextField="columnNameToUseAsText" DataValueField="columnNameToUseAsValue" /> 

de cette façon, vous ne devez spécifier que la propriété DataSource et appeler la méthode DataBind() dans votre code back-end.