Subversion-Projekte lars-tiefland.prado

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<com:TContent ID="body" >
2
<!-- $Id: Scaffold.page 1902 2007-05-07 04:17:37Z wei $ -->
3
<h1 id="144022">Tampilan Scaffold Rekaman Aktif</h1>
4
<com:SinceVersion Version="3.1b" />
5
<p id="720048" class="block-content">Kelas <a href="?page=Database.ActiveRecord">Rekaman Aktif</a> dapat digunakan dengan
6
<com:DocLink ClassPath="System.Data.ActiveRecord.Scaffold.TScaffoldListView" Text="TScaffoldListView"/>
7
dan
8
<com:DocLink ClassPath="System.Data.ActiveRecord.Scaffold.TScaffoldEditView" Text="TScaffoldEditView"/>
9
( <com:DocLink ClassPath="System.Data.ActiveRecord.Scaffold.TScaffoldView" Text="TScaffoldView"/>
10
mengaitkan <tt>TScaffoldListView</tt> dan <tt>TScaffoldEditView</tt>) untuk membuat aplikasi web Create/Read/Update/Delete (CRUD) <i>sederhana</i>.</p>
11
 
12
<p id="720049" class="block-content">Tampilan scaffold dimaksudkan untuk membantu dalam membuat prototipe aplikasi web, tidak didesain sebagai yang bisa dikustomisasi atau serumit komponen misalnya
13
<a href="?page=Controls.DataGrid">TDataGrid</a>. Tampilan scaffold menyediakan fungsionalitas builtin:
14
</p>
15
 
16
<ul>
17
	<li>Mendaftar semua item rekaman aktif.</li>
18
	<li>Mencari rekaman.</li>
19
	<li>Memilah halaman dan mengurut.</li>
20
	<li>Menghapus item.</li>
21
	<li>Menyisipkan item baru.</li>
22
	<li>Memutakhirkan item yang ada.</li>
23
	<li>Memvalidasi field dan tipe data dasar yang diperlukan.</li>
24
	<li>Menyajikan kontrol khusus seperti pengambil tanggal.</li>
25
</ul>
26
 
27
<p id="720050" class="block-content">Tampilan Scaffold berdiri sendiri pada Rekaman Aktif dan saat ini mendukung database: Mysql, Sqlite dan Postgres SQL. Dukungan untuk database lain dapat diputuskan bila ada permintaan yang cukup.</p>
28
 
29
<h2 id="144023">Menyiapkan Tampilan Scaffold</h2>
30
<p id="720051" class="block-content">Untuk menggunakan tampilan scaffold, pertama kita mendefinisikan kelas <a href="?page=Database.ActiveRecord">Rekaman Aktif</a> yang mewakili tabel atau view dalam database. Tetapkan kelas Rekaman Aktif berikut yang berkaitan dengan tabel <tt>users</tt>
31
seperti didefinisikan dalam halaman <a href="?page=Database.ActiveRecord">Rekaman Aktif</a>.
32
</p>
33
 
34
<com:TTextHighlighter Language="php" CssClass="source block-content" id="code_720188">
35
class UserRecord extends TActiveRecord
36
{
37
    const TABLE='users';
38
 
39
    public $username;
40
    public $email;
41
}
42
</com:TTextHighlighter>
43
 
44
<p id="720052" class="block-content">Kelas tampilan scaffold ada di <tt>System.Data.ActiveRecord.Scaffold.*</tt>
45
<a href="?page=Fundamentals.Components#704">namespace</a>.
46
<a href="?page=Fundamentals.Components#704">namespace</a> ini bisa diimpor ke
47
<a href="?page=Configurations.AppConfig">Konfigurasi Aplikasi</a>
48
menggunakan file <tt>application.xml</tt> atau melalui kode php menggunakan metode <tt>Prado::using()</tt>. Untuk mulai menggunakan
49
<com:DocLink ClassPath="System.Data.ActiveRecord.Scaffold.TScaffoldView" Text="TScaffoldView"/>
50
cukup setel nilai properti <tt>RecordClass</tt> sama dengan nama kelas Rekaman Aktif.
51
</p>
52
 
53
<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_720189">
54
&lt;com:TScaffoldView RecordClass="UserRecord" /&gt;
55
</com:TTextHighlighter>
56
 
57
<p id="720053" class="block-content">Kode di atas akan mendaftar rekaman saat ini dalam tabel <tt>users</tt>.
58
Setiap rekaman dapat diedit dengan mengklik tombol "edit" dan dihapus dengan mengklik tombol "delete". Rekaman baru bisa ditambahkan dengan mengklik pada tombol "Add new record", masukkan beberapa data (perhatikan validasi otomatis terhadap field dan tipe data yang diperlukan), dan klik tombol "save".
59
Menetapkan batas pencarian dalam kotak teks cari guna menemukan rekaman tertentu. Akhirnya, daftar rekaman bisa disimpan pada setiap kolom dengan mengubah kolom pengurutan serta urutan.
60
</p>
61
 
62
<p id="720054" class="block-content"><tt>TScaffoldView</tt> adalah kontrol template yang dibuat dari kontrol scaffold lainnya.
63
Properti berikut memberikan akses ke kontrol gabungan ini.</p>
64
<ul>
65
	<li><b><tt>ListView</tt></b> -- <tt>TScaffoldListView</tt> menampilkan daftar rekaman. </li>
66
	<li><b><tt>EditView</tt></b> -- <tt>TScaffoldEditView</tt> yang menyajikan input untuk mengedit dan menambah rekaman.</li>
67
	<li><b><tt>SearchControl</tt></b> -- <tt>TScaffoldSearch</tt> bertanggung jawab atas pencarian antarmuka pengguna.</li>
68
</ul>
69
<p id="720055" class="block-content">
70
 Semua kontrol gabungan ini bisa dikustomisasi seperti yang akan kita lihat di bawah.
71
</p>
72
 
73
<h2 id="144024">TScaffoldListView</h2>
74
 
75
<p id="720056" class="block-content">Daftar Rekaman Aktif dapat ditampilkan menggunakan <tt>TScaffoldListView</tt> dengan properti berguna berikut.</p>
76
<ul>
77
	<li><b><tt>Header</tt></b> -- <a href="?page=Controls.Repeater">TRepeater</a> menampilkan properti/nama field Rekaman Aktif. </li>
78
	<li><b><tt>Sort</tt></b> -- <a href="?page=Controls.List">TDropDownList</a> menampilkan kombinasi properti dan kemungkinan urutannya. </li>
79
	<li><b><tt>Pager</tt></b> -- kontrol <a href="?page=Controls.Pager">TPager</a> menampilkan link dan/atau tombol yang menavigasi ke halaman berbeda dalam data Rekaman Aktif.</li>
80
	<li><b><tt>List</tt></b> -- <a href="?page=Controls.Repeater">TRepeater</a> yang menyajikan baris data Rekaman Aktif.</li>
81
</ul>
82
 
83
<p id="720057" class="block-content">Penyajian kustom dari Rekaman Aktif dapat dicapai dengan menetapkan properti <tt>ItemTemplate</tt> dan/atau <tt>AlternatingItemTemplate</tt> dari pengulang <tt>List</tt>.
84
<tt>TScaffoldListView</tt> akan mendengarkan dua event perintah bernama "delete" dan "edit". Perintah "delete" akan menghapus rekaman untuk baris di mana perintah "delete" berasal.
85
Perintah "edit" akan memaksa data rekaman untuk diedit oleh
86
<tt>TScaffoldEditView</tt> dengan ID yang ditetapkan dengan properti <tt>EditViewID</tt>.
87
Contoh berikut mendaftar nama pengguna hanya dengan format tebal.
88
</p>
89
 
90
<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_720190">
91
&lt;com:TScaffoldListView RecordClass="UserRecord" &gt;
92
    &lt;prop:List.ItemTemplate&gt;
93
        &lt;strong>&lt;%# $this->Data->username %>&lt;/strong&gt;
94
    &lt;/prop:List.ItemTemplate&gt;
95
&lt;/com:TScaffoldListView&gt;
96
</com:TTextHighlighter>
97
 
98
<div class="info"><b class="note">Info:</b>
99
Untuk <tt>TScaffoldView</tt>, tampilan daftar dapat diakses melalui properti <tt>ListView</tt> dari <tt>TScaffoldView</tt>.
100
Selanjutnya, subproperti <tt>ListView.List.ItemTemplate</tt> pada <tt>TScaffoldView</tt>
101
adalah sama dengan subproperti <tt>List.ItemTemplate</tt> dari <tt>TScaffoldListView</tt> dalam contoh di atas.
102
</div>
103
 
104
<p id="720058" class="block-content">Properti <tt>SearchCondition</tt> dan properti <tt>SearchParameters</tt> (mengambil nilai array) bisa ditetapkan untuk mengkustomisasi rekaman yang ditampilkan. <tt>SearchCondition</tt>
105
akan dipakai sebagai properti <tt>Condition</tt> dari <tt>TActiveRecordCriteria</tt>
106
dan properti <tt>SearchParameters</tt> berkaitan dengan properti
107
<tt>Parameters</tt> dari <tt>TActiveRecordCriteria</tt>.</p>
108
 
109
<h2 id="144025">TScaffoldEditView</h2>
110
<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_720191">
111
&lt;com:TScaffoldEditView RecordPk="user1" RecordClass="UserRecord" /&gt;
112
</com:TTextHighlighter>
113
 
114
<h2 id="144026">Menggabungkan tampilan daftar + edit</h2>
115
 
116
<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_720192">
117
&lt;com:TScaffoldEditView ID="edit_view" RecordClass="UserRecord" /&gt;
118
&lt;com:TScaffoldListView EditViewID="edit_view" RecordClass="UserRecord" /&gt;
119
</com:TTextHighlighter>
120
 
121
<h2 id="144027">Mengkustomisasi TScaffoldView</h2>
122
<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_720193">
123
&lt;com:TScaffoldView RecordClass="UserRecord" &gt;
124
    &lt;prop:ListView.List.ItemTemplate&gt;
125
        &lt;%# $this->DataItem->username %&gt;
126
        &lt;com:TLinkButton Text="Edit" CommandName="edit" /&gt;
127
    &lt;/prop:ListView.List.ItemTemplate&gt;
128
&lt;/com:TScaffoldView/&gt;
129
</com:TTextHighlighter>
130
 
131
<div class="last-modified">$Id: Scaffold.page 1902 2007-05-07 04:17:37Z wei $</div></com:TContent>