Показать значения в TDropDownList в PRADO - PullRequest
1 голос
/ 19 мая 2010

Я новичок в 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 с кодом

<?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();
    }
}
?>

$ rec содержит массив всех значений.

Теперь я хочу показать все имена в выпадающем списке. Я старался изо всех сил, но потерпел неудачу. Может кто-нибудь мне помочь? Спасибо

1 Ответ

2 голосов
/ 28 августа 2010

Вы можете заполнить DataTextField и DataValueField раскрывающегося списка именами столбцов таблицы базы данных, чтобы использовать их как текст и значение TListItem соответственно:

<?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();
    }
}
?>

Кроме того, вы можете сделать это в HTML-интерфейсе:

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

Таким образом, вам нужно только указать свойство DataSource и вызвать метод DataBind() в вашем внутреннем коде.

...