Rabu, 29 April 2015

CARA: Secara dinamis membuat kontrol ASP.net dengan Visual Basic .NET



Collapse imagePada Halaman ini

Collapse imageRINGKASAN

Artikel ini selangkah demi selangkah menjelaskan cara membuat dinamis kontrol untuk halaman ASPX Web.

Contoh proyek melakukan hal berikut ini:
  • Membuat dua kontrol teks .
  • Verifikasi bahwa kotak teks konten (TextBox.text) dan atribut disimpan di posting ke server.
  • Artikel ini menjelaskan tentang cara menangani peristiwa yang dikirim oleh kontrol yang dibuat secara dinamis.

Membuat proyek dan kontrol statis

  1. Pada Visual Studio .NET membuat proyek Web baru menggunakan Visual Basic .NET. Nama proyek DynamicCreate.
  2. Buka berkas WebForm1.aspx, dan kemudian beralih ke tampilan HTML. Masukkan kode berikut antara tag < HTML > dan < / HTML > tag:
    <HEAD>
        <title>WebForm1</title>
        <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.0">
        <meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
        <meta name="vs_defaultClientScript" content="JavaScript">
        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    </HEAD>
    <body MS_POSITIONING="GridLayout">
        <form id="Form1" method="post" runat="server">
            <asp:Button id="Button1" style="Z-INDEX: 100; LEFT: 23px; POSITION: absolute; TOP: 108px" runat="server" Text="Submit" Height="27px" Width="100px"></asp:Button>
            <asp:Label id="Label4" style="Z-INDEX: 105; LEFT: 23px; POSITION: absolute; TOP: 197px" runat="server" Width="368px" EnableViewState="False"></asp:Label>
            <asp:Label id="Label3" style="Z-INDEX: 104; LEFT: 23px; POSITION: absolute; TOP: 163px" runat="server" Width="368px" EnableViewState="False"></asp:Label>
            <asp:Label id="Label2" style="Z-INDEX: 102; LEFT: 23px; POSITION: absolute; TOP: 60px" runat="server" Width="86px" Height="19px"> TextBox2:</asp:Label>
            <asp:Label id="Label1" style="Z-INDEX: 101; LEFT: 23px; POSITION: absolute; TOP: 28px" runat="server" Width="86" Height="19"> TextBox1:</asp:Label></form>
    </body>
         
  3. Beralih kembali ke tampilan desain untuk melihat kontrol statis dibuat yang proyek akan digunakan.

Membuat kontrol dinamis dan menghubungkan

  1. Pada solusi Explorer, klik Tampilkan semua berkas. Daftar berkas yang berkaitan dengan WebForm1.aspx muncul. Buka WebForm1.aspx.vb.
  2. Menyatakan kontrol TestBox di berkas .vb (di belakang kode). Selain itu, menyatakan variabel untuk elemen bentuk yang ada di berkas .aspx. Pemutakhiran Deklarasi yang diikuti Deklarasi WebForm1 kelas umum:
    Public Class WebForm1
        Inherits System.Web.UI.Page
        Protected WithEvents Button1 As System.Web.UI.WebControls.Button
        Protected WithEvents Label4 As System.Web.UI.WebControls.Label
        Protected WithEvents Label3 As System.Web.UI.WebControls.Label
        Protected WithEvents Label2 As System.Web.UI.WebControls.Label
        Protected WithEvents Label1 As System.Web.UI.WebControls.Label
    
        ' Added by hand for access to the form.
        Protected Form1 As System.Web.UI.HtmlControls.HtmlForm
    
        ' Added by hand; will create instance in OnInit.
        Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox
        Protected WithEvents TextBox2 As System.Web.UI.WebControls.TextBox
          
    Deklarasi teks yang dimasukkan dengan tangan seperti mereka akan jika teks menyeret dari toolbox halaman ASPX. Namun, dalam hal ini, Anda membuat kontrol dinamis.
  3. Menambahkan kode untuk membuat kontrol teks dinamis. Kontrol dibuat setiap kali halaman dijalankan. Tempat terbaik untuk melakukannya adalah fungsi Page_Init kelas WebForm1 yang diberikan. Temukan fungsi Page_Init . Memperluas kode yang ditandai dengan komentar "Web Form Designer dihasilkan kode." Mengubah fungsi Page_Init , sehingga mereka muncul sama dengan berikut ini:
    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
        ' Create dynamic controls here.
        TextBox1 = New TextBox()
        TextBox1.ID = "TextBox1"
        TextBox1.Style("Position") = "Absolute"
        TextBox1.Style("Top") = "25px"
        TextBox1.Style("Left") = "100px"
        Form1.Controls.Add(TextBox1)
    
        TextBox2 = New TextBox()
        TextBox2.ID = "TextBox2"
        TextBox2.Style("Position") = "Absolute"
        TextBox2.Style("Top") = "60px"
        TextBox2.Style("Left") = "100px"
        Form1.Controls.Add(TextBox2)
    
        ' CODEGEN: The Web Form Designer requires this method call.
        ' Do not modify it by using the code editor.
        InitializeComponent()
    End Sub
          
    Kode ini secara dinamis membuat dua kontrol kotak teks , menetapkan id dan posisi, dan kemudian pengikatan mereka koleksi Kontrol borang . Anda dapat juga menambahkan formulir Web Panel kontrol untuk halaman ASPX, dan kemudian mengikat kotak teks kontrol tersebut dalam fungsi Page_Init , seperti dalam contoh berikut:
        TextBox1 = New TextBox()
        TextBox1.ID = "TextBox1"
    ' comment   add command  the Form Controls collection as follows
    '   Form1.Controls.Add(TextBox1)'
        Panel1.Controls.Add(TextBox1)
         
    Catatan Ketika Anda membuat kontrol dinamis pada formulir Web, Anda harus membuat kontrol dan menambahkannya ke koleksi kontrol dalam penanganan kejadian Page_Init atau penanganan kejadian Page_Load . Jika tidak, kontrol mungkin tidak berperilaku seperti yang diharapkan.
  4. Menyiapkan properti teks untuk kotak teks. Mengubah fungsi Page_Load ada:
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If Not IsPostBack Then
            ' Set the initial properties for the text boxes.
            TextBox1.Text = "TextBox1"
            TextBox2.Text = "TextBox2"
        End If
    End Sub
          
    Anda harus menetapkan nilai awal (Jika tidak IsPostBack) kotak teks hanya satu kali. Antarmuka IPostBackDataHandler untuk kotak teks mempertahankan informasi ini. Anda tidak harus me-reset nilai untuk kemudian posting.
  5. Menyediakan handler untuk teks TextChanged peristiwa. Tambahkan kode berikut setelah fungsi Page_Load :
    Private Sub TextBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged, TextBox2.TextChanged
        Dim txtBoxSender As TextBox
        Dim strTextBoxID As String
    
        txtBoxSender = CType(sender, TextBox)
        strTextBoxID = txtBoxSender.ID
    
        Select Case strTextBoxID
            Case "TextBox1"
                Label3.Text = "TextBox1 text was changed"
    
            Case "TextBox2"
                Label4.Text = "TextBox2 text was changed"
        End Select
    End Sub
          
    Kode ini memverifikasi kontrol yang memicu peristiwa, dan kemudian laporan ini kepada pengguna menggunakan kontrol Label yang sesuai. Perhatikan bahwa fungsi ini menangani peristiwa TextChanged untuk kedua kotak teks kontrol yang dibuat secara dinamis. Secara default, AutoPostBack adalah false untuk kontrol teks . Oleh karena itu, jika pengguna perubahan teks dalam kontrol, tindakan ini tidak menyebabkan PostBack ke server. Namun, jika pengguna mengklik kirim posting bentuk ke server, tindakan ini memicu peristiwa TextChanged untuk kontrol kotak teks , dan kemudian fungsi ini disebut.

Simpan, pembuatan, dan kemudian jalankan sampel

Simpan, dan kemudian membuat sampel. Untuk menjalankan sampel pada Visual Studio .NET, klik kanan berkas ASPX, dan kemudian klik tampilan di Browser.

Collapse imageProperti

ID Artikel: 317515 - Kajian Terakhir: 24 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft ASP.NET 1.0
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft ASP.NET 1.1
  • Microsoft Visual Basic .NET 2003 Standard Edition
Kata kunci: 
kbctrlcreate kbevent kbhowtomaster kbservercontrols kbwebforms kbmt KB317515 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:317515

Collapse imageBerikan Masukan

Apakah informasi ini bermanfaat?
Ya
Tidak
Cukup bermanfaat
Seberapa besar upaya Anda untuk menggunakan artikel ini?
Sangat sedikit
Sedikit
Sedang
Besar
Sangat besar
Berikan saran tentang apa yang dapat kami lakukan untuk menyempurnakan informasi ini

Tidak ada komentar:

Posting Komentar