Tugas menjana HTML, kotak teks ASP dan butang dalam kawalan yang dicipta secara dinamik boleh yang kompleks. Nasib baik, terdapat beberapa pendekatan yang boleh anda ambil untuk mencapai ini.
Dalam contoh anda, anda menjana HTML dalam kod secara manual, kemudian mencipta kotak teks secara dinamik dan butang menggunakan rangka kerja kawalan. Walaupun kaedah ini berfungsi, ia boleh menjadi membosankan dan terdedah kepada ralat apabila bilangan kawalan yang dijana meningkat.
Untuk menjana satu siri kawalan yang serupa, seperti sebagai senarai bahaya atau kawasan, menggunakan ListView atau DataGrid ialah pendekatan yang disyorkan. Kawalan ini menyediakan sokongan terbina dalam untuk pengikatan data, membolehkan anda memberikan kawalan dengan mudah berdasarkan sumber data.
Jika anda selesa dengan pelanggan -skrip sampingan, anda boleh menggunakan JavaScript atau jQuery untuk mencipta dan memanipulasi elemen secara dinamik dengan cepat. Pendekatan ini menghapuskan keperluan untuk kod sebelah pelayan dan membolehkan kefungsian yang lebih interaktif.
Berikut ialah contoh menggunakan ListView untuk menjana senarai bahaya dalam ciptaan dinamik kawasan:
private void CreateArea(int areaCount) { // ... existing code // Create a ListView for hazards ListView hazardList = new ListView(); hazardList.ID = "lvHazards" + areaCount; hazardList.DataSource = new string[] { "Hazard1", "Hazard2", "Hazard3" }; hazardList.DataBind += HazardList_DataBind; phHazard.Controls.Add(hazardList); } protected void HazardList_DataBind(object sender, ListViewDataBindEventArgs e) { ListView listView = (ListView)sender; foreach (string hazard in e.DataItem as string[]) { // Create a new DropDownList for the hazard DropDownList ddHazard = new DropDownList(); ddHazard.ID = "ddHazard" + hazard; ddHazard.Items.Add(new ListItem("Hazard1", "Hazard1")); // Create a new TextBox for the hazard description TextBox txtHazardDesc = new TextBox(); txtHazardDesc.ID = "txtHazardDesc" + hazard; // Add the controls to the current ListView item listView.Controls.Add(ddHazard); listView.Controls.Add(new LiteralControl(" ")); listView.Controls.Add(txtHazardDesc); listView.Controls.Add(new LiteralControl("<br />")); } }
Contoh ini menunjukkan cara mencipta ListView untuk memaparkan senarai bahaya dalam setiap kawasan yang dicipta secara dinamik. Pengikatan data ListView dikendalikan dalam pengendali peristiwa HazardList_DataBind, di mana kawalan dibuat secara dinamik dan ditambah pada item ListView yang sesuai.
Ingat bahawa kawalan yang dibuat secara dinamik perlu dibuat semula pada setiap pos balik halaman untuk mengekalkan keadaannya. Pertimbangkan untuk menggunakan ViewState atau mekanisme caching untuk menyimpan data yang dikaitkan dengan kawalan dinamik untuk mengelakkannya daripada hilang.
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Kawalan ASP.NET dengan Cekap dalam Kawalan ASP.NET Dicipta Secara Dinamik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!