Halaman Formulir Web ASP.NET adalah file teks deklaratif dengan ekstensi .aspx. Selain konten statis, Anda dapat menandai elemen menggunakan delapan sintaks berbeda. Bagian ini mengulas elemen sintaksis ini dan memberikan beberapa contoh cara menggunakannya.
Sintaks untuk merender kode: <% %> dan <%= %>
Blok rendering kode diwakili oleh elemen <% ... %>, yang memungkinkan Anda mengontrol konten yang dirender dan dijalankan selama fase tampilan halaman Formulir Web eksekusi. Contoh berikut menunjukkan cara menggunakannya untuk mengulang konten HTML.
<%@ Halaman Bahasa="VB" %>
<html>
<tubuh>
<% Redupkan I Sebagai Integer
Untuk I = 0 Sampai 7 %>
<ukuran font="<%=I%>"> Halo Dunia </font> <br>
<%Berikutnya %>
</badan>
</html>
<% ... %> hanya dieksekusi, sedangkan ekspresi yang mengandung tanda sama dengan (<%= ... %>) akan menghitung hasilnya saat konten ditampilkan. Oleh karena itu, <%="Hello World" %> menampilkan hasil yang sama dengan kode C# <% Response.Write("Hello World" %>.
Perhatikan bahwa karena bahasa tersebut memerlukan penggunaan penanda untuk mengakhiri atau memisahkan pernyataan (seperti titik koma; dalam C#), penting untuk menempatkan penanda ini dengan benar.
Kode C#
<% Response.Write("Hello World"); memerlukan titik koma untuk mengakhiri pernyataan.
<%="Halo Dunia"; %> Kesalahan: Menyebabkan "Respon.Write("Halo Dunia";);".
<%="Halo Dunia" %> Tidak diperlukan titik koma.
Sintaks untuk mendeklarasikan kode: <script runat="server">
Blok deklarasi kode mendefinisikan variabel anggota dan metode yang akan dikompilasi ke dalam kelas Halaman. Blok ini dapat digunakan untuk membangun logika halaman dan navigasi. Contoh berikut menunjukkan cara mendefinisikan metode Subtract di blok <script runat="server"> dan kemudian memanggilnya di halaman.
<html>
<bahasa skrip="VB" runat=server>
Fungsi Kurangi (Nomor1 Sebagai Integer, Num2 Sebagai Integer) Sebagai Integer
Kembalikan Nomor1-Nomor2
Fungsi Akhir
</skrip>
<isi>
<%
Redupkan Angka Sebagai Integer = 100
Lakukan Sementara Angka > 0
Response.Write("Nilai: " & Nomor & "<br>")
Angka = Kurangi(Angka, 1)
Lingkaran
%>
</badan>
</html>
Harap dicatat: Tidak seperti ASP - dalam fungsi ASP harus didefinisikan dalam blok <% %> - semua fungsi dan variabel global harus didefinisikan menggunakan tag <script runat=server>. Deklarasi fungsi di blok <% %> akan memunculkan pesan kesalahan kompilasi sintaksis.
Sintaks Kontrol Server
Kontrol server ASP.NET yang disesuaikan memungkinkan pengembang halaman menghasilkan antarmuka pengguna HTML secara dinamis dan merespons permintaan klien. Mereka diekspresikan dalam file menggunakan sintaksis deklaratif berbasis markup. Tag ini berbeda dari tag lain karena berisi atribut "runat=server". Contoh berikut menunjukkan cara menggunakan kontrol server <asp:label runat="server"> di halaman ASP.NET. Kontrol ini sesuai dengan kelas Label di namespace System.Web.UI.WebControls.
Dengan menambahkan tag dengan ID "Pesan", instance Label dapat dibuat saat runtime:
<asp:label id="Message" font-size=24 runat="server"/>
Kita dapat menggunakan nama ini untuk mengakses kontrol . Kode berikut menyetel properti Teks pada kontrol.
Pesan.Teks = "Selamat datang di ASP.NET"
<html>
<bahasa skrip="VB" runat=server>
Sub Page_Load (Pengirim Sebagai Objek, E Sebagai EventArgs)
Pesan.Teks = "Selamat datang di ASP.NET"
Akhiri Sub
</skrip>
<tubuh>
<asp:label id="Pesan" font-size=24 runat=server/>
</badan>
</html>
Sintaks kontrol server HTML
Kontrol server HTML memungkinkan pengembang mengoperasikan elemen HTML di halaman secara terprogram. Tag kontrol server HTML berbeda dari elemen HTML klien karena memiliki atribut "runat=server". Contoh berikut menunjukkan cara menggunakan kontrol server HTML <span runat=server> di halaman ASP.NET.
<html>
<bahasa skrip="VB" runat=server>
Sub Page_Load (Pengirim Sebagai Objek, E Sebagai EventArgs)
Pesan.InnerHtml = "Selamat datang di ASP.NET"
Akhiri Sub
</skrip>
<tubuh>
<span id="Pesan" style="ukuran font:24" runat=server/>
</badan>
</html>
Sintaks pengikatan data: <%# %>
Dukungan bawaan ASP.NET untuk pengikatan data memungkinkan pengembang halaman mengikat properti kontrol secara hierarki ke nilai kontainer data. Kode dalam blok kode <%# %> hanya dieksekusi ketika metode DataBind dari kontainer kontrol induknya dipanggil. Contoh berikut menunjukkan cara menggunakan sintaks data binding di kontrol <asp:datalist runat=server>.
Dalam daftar data ini, setiap item diberi templat. Konten templat item ditentukan menggunakan ekspresi pengikatan data, dan Container.DataItem menunjuk ke sumber data yang digunakan oleh daftar data MyList.
<asp:datalist id="Daftar Saya" runat=server>
<Templat Barang>
Berikut nilainya: <%# Container.DataItem %>
</Templat Barang>
</asp:datalist>
Dalam hal ini, sumber data kontrol MyList diatur secara terprogram, dan kemudian metode DataBind() dipanggil.
Memanggil metode DataBind dari suatu kontrol akan memicu pohon rekursif (dimulai dengan kontrol hingga kontrol yang lebih rendah di pohon); peristiwa DataBinding dari setiap kontrol server dalam hierarki akan dimunculkan, dan ekspresi pengikatan data dalam Nilai kontrol dihitung sebagaimana mestinya. Oleh karena itu, jika metode DataBind halaman dipanggil, maka setiap ekspresi pengikatan data di halaman tersebut akan dipanggil.
<html>
<bahasa skrip="VB" runat=server>
Sub Page_Load (Pengirim Sebagai Objek, E Sebagai EventArgs)
Redupkan Item Sebagai ArrayList Baru
Item.Tambahkan("Satu")
Item.Tambahkan("Dua")
Item.Tambahkan("Tiga")
Daftar Saya.DataSource = Item
Daftar Saya.DataBind()
Sub Akhir
</skrip>
<tubuh>
<asp:datalist id="Daftar Saya" runat=server>
<Templat Barang>
Berikut nilainya: <%# Container.DataItem %>
</Templat Barang>
</asp:daftar data>
</badan>
</html>
ASP.NET 2.0 juga menyertakan sintaks pengikatan data baru yang disederhanakan, yang memungkinkan kontrol untuk secara otomatis mengikat data ke kontrol sumber data tanpa harus memanggil DataBind() dalam kode halaman. Sintaks ini dibahas dalam bab "Melakukan Akses Data".
Sintaks tag objek: <object runat="server" />
Tag objek memungkinkan pengembang halaman menggunakan sintaks deklaratif berbasis tag untuk mendeklarasikan dan membuat instance variabel. Contoh berikut menunjukkan cara menggunakan notasi objek untuk membuat instance kelas ArrayList.
Objek ini secara otomatis dibuat pada saat runtime dan dapat diakses melalui ID "item".
<html>
<bahasa skrip="VB" runat=server>
Sub Page_Load(Pengirim ByVal Sebagai Objek, ByVal E Sebagai EventArgs)
ArrayItems.Tambahkan("Satu")
ArrayItems.Tambahkan("Dua")
ArrayItems.Tambahkan("Tiga")
Daftar Saya.DataSource = ArrayItems
Daftar Saya.DataBind()
Akhiri Sub
</skrip>
<isi>
<object id="ArrayItems" class="System.Collections.ArrayList" runat=server/>
<asp:datalist id="Daftar Saya" runat=server>
<Templat Barang>
Berikut nilainya: <%# Container.DataItem %>
</Templat Barang>
</asp:daftar data>
</badan>
</html>
Sintaks komentar sisi server: <%-- Komentar --%>
Komentar sisi server memungkinkan pengembang halaman mencegah eksekusi dan rendering kode server (termasuk kontrol server) dan konten statis. Contoh berikut menunjukkan cara mencegah konten dieksekusi dan dikirim ke klien. Harap dicatat bahwa semua informasi antara <%-- dan --%> akan disaring dan hanya akan terlihat di file server asli, meskipun berisi arahan ASP.NET lainnya.
<html>
<tubuh>
Konten di bawah ini telah disembunyikan dari klien browser menggunakan komentar sisi server
(lihat sumber .aspx untuk mengetahui maksud kami :-)
<%--
<asp:calendar id="MyCal" runat=server/>
<% Untuk I = 0 Sampai 44 %>
Halo Dunia <br>
<%Berikutnya %>
--%>
</badan>
</html>
Sintaks penyertaan file sisi server: <-- #Include File="Locaton.inc" -->
Penyertaan file sisi server (#Include) memungkinkan pengembang memasukkan konten file tertentu di mana saja di ASP. halaman BERSIH. Contoh berikut menunjukkan cara menyisipkan judul dan footer khusus ke dalam halaman.
<html>
<tubuh>
<!-- #Sertakan File="Header.inc" -->
<br />
<h3> Konten halaman utama </h3>
<br />
<!-- #Sertakan File="Footer.inc" -->
</badan>
</html>
Sintaks ekspresi: <%$ ... %>Fitur baru di 2.0
ASP.NET 2.0 menambahkan sintaks ekspresi deklaratif baru untuk substitusi nilai sebelum analisis halaman. Ini sangat berguna ketika kita perlu mengganti nilai properti kontrol server dengan nilai string koneksi atau pengaturan aplikasi di file Web.config. Itu juga dapat digunakan untuk mengganti nilai dalam file sumber daya selama pelokalan.
<asp:SqlDataSource ID="SqlDataSource1" ConnectionString='<%$ connectionStrings:Pubs %>' runat="server" SelectCommand="sp_GetAuthors" />
<asp:Label ID="Label1" Text='<%$ Sumber Daya: ExchRate, ConvertLabel %>' runat="server"/>