Implementasi folder desain ASP.NET dari hard drive jaringan
Penulis:Eve Cole
Waktu Pembaruan:2009-06-30 15:39:42
Seperti disebutkan ketika memperkenalkan konsep "hard drive jaringan", setiap pengguna memiliki ruangnya sendiri di "hard drive jaringan". Ini adalah bagaimana hal ini ditangani dalam desain program berikut: folder tetap disediakan untuk pengguna, di mana pengguna dapat menambah/menghapus folder atau file baru. Seperti yang ditunjukkan pada Gambar 1, saat Anda membuka halaman web untuk pertama kalinya, semua konten di bawah folder (termasuk file dan folder) akan dicantumkan. Jika Anda ingin masuk ke folder tingkat berikutnya, Anda dapat memilih folder tersebut dan klik tombol "Buka" untuk masuk. Penerapan fungsi melihat isi folder akan dijelaskan langkah demi langkah di bawah ini.
Gambar 1 Antarmuka utama pengguna |
1. Pemuatan halaman
Karena direktori pengguna yang disediakan oleh program adalah tetap, seperti c:UserDir, dan semua konten folder harus ditampilkan setelah halaman dimuat, operasi terkait perlu dilakukan di Page_Load: pertama-tama tentukan apakah folder tersebut ada , jika tidak ada, Anda harus membuatnya terlebih dahulu, lalu mencantumkan konten di bawah folder tersebut. Kodenya diterapkan sebagai berikut:
private void Page_Load(pengirim objek, System.EventArgs e) { //Masukkan kode pengguna di sini untuk menginisialisasi halaman
if(Halaman.IsPostBack==false) { CurrentPath= @"c:UserDir"; //Setel direktori saat ini if(Directory.Exists(@"c:UserDir")==false) //Jika direktori tidak ada, buat direktori Direktori. CreateDirectory( @"c:UserDir"); LoadDir(CurrentPath); //Inisialisasi direktori pemuatan} }
|
Metode LoadDir(string FullPath) digunakan untuk membuat daftar semua isi dalam folder. Kodenya adalah sebagai berikut:
kekosongan pribadi LoadDir(string FullPath) { Jalur Saat Ini=Jalur Penuh; Nilai ArrayList = ArrayList baru(); string [] File Saya, Dirs Saya; MyFiles = Directory.GetFiles(FullPath); //Dapatkan semua file di direktori if(CurrentPath!=@"c:UserDir") //Jika ini bukan direktori teratas, tambahkan opsi "kembali ke direktori atas" { value.Add("Kembali ke direktori atas"); }
value.AddRange(MyFiles); //Tambahkan file MyDirs= Directory.GetDirectories(FullPath); //Dapatkan semua direktori di direktori ini value.AddRange(MyDirs); //Tambahkan direktori FileList.DataSource=values; FileList.DataBind(); //Mengikat data } |
Pertama, tentukan nilai objek array ArrayList untuk menyimpan semua konten direktori tingkat atas (termasuk nama folder dan nama file). Metode Directory.GetFiles() mengembalikan semua nama file di direktori tingkat atas. Tipe kembaliannya adalah array string, sehingga objek kelas string MyFiles perlu didefinisikan untuk menyimpan nama file yang dikembalikan; file di direktori tingkat atas. Nama folder, juga menentukan objek array string MyDirs untuk menyimpannya. Setelah menyelesaikan ini, Anda dapat menambahkan array MyFiles dan MyDirs ke objek nilai. Hal terakhir yang harus dilakukan adalah menambahkan sumber data dan mengikat data ke objek kontrol ListBox FileList. Satu hal yang perlu dijelaskan: jika direktori saat ini bukan direktori tingkat atas, Anda harus dapat kembali ke direktori tingkat atas. Untuk melakukan ini, Anda perlu menambahkan "Kembali ke direktori tingkat atas". pilihan ke FileList.
2. Tampilan direktori multi-level
Dengan dua potongan kode yang tercantum di bagian sebelumnya, Anda dapat membuat daftar semua konten di direktori tingkat atas saat halaman dimuat. Tentu saja, mencantumkan isi direktori tingkat atas saja tidak cukup. Mirip dengan sistem operasi Windows, direktori folder di hard disk jaringan juga bertumpuk, dan terdapat dua atau lebih tingkat direktori folder. Untuk tujuan ini, beberapa pemrosesan terkait harus dilakukan agar pengguna dapat melihat konten folder multi-level. Desain antarmuka sebelumnya menyediakan tombol "Buka". Setelah pengguna memilih folder yang sesuai, klik tombol tersebut untuk melihat isi folder.
Sekarang tambahkan kode untuk tombol "Buka". Klik dua kali tombol di panel "Desain", dan sistem akan secara otomatis menambahkan acara ke dalamnya. Isi kodenya adalah sebagai berikut:
private void btnOpen_Click(pengirim objek, System.EventArgs e) { if(FileList.SelectedItem.Text=="Kembali ke direktori tingkat atas") //Kembali ke direktori tingkat atas{ string ParentPath=Direktori.GetParent(CurrentPath).ToString(); LoadDir(PathPath); kembali; } lain //buka direktori{ LoadDir(FileList.SelectedItem.Teks); } } |
Program pertama-tama menentukan apakah pengguna memilih "Kembali ke direktori atas". Jika demikian, Anda harus terlebih dahulu mengembalikan nama folder tingkat atas melalui metode Directory.GetParent(), lalu memanggil metode LoadDir() untuk menampilkan konten direktori; jika pengguna memilih untuk tidak "Kembali ke tingkat atas direktori" tetapi nama folder, Anda dapat langsung memanggil metode LoadDir(). FileList.SelectedItem.Text adalah nama folder yang dipilih, yang digunakan sebagai parameter metode LoadDir().