Pada dasarnya saya ingin memasukkan item di awal SelectList dengan nilai default 0 dan Nilai Teks "- Select One -"
Sesuatu seperti
SelectList list = new SelectList(repository.func.ToList());
ListItem li = new ListItem(value, value);
list.items.add(li);
Bisakah ini dilakukan?
asp.net-mvc
selectlist
GEOCHET
sumber
sumber
SelectList
benar-benar tampaknya hanya pembantu untuk mengikat data secara langsung ke item. Jika Anda menambahkan item secara manual gunakanList<SelectListItem>
saja.Jawaban:
Sebenarnya tidak perlu melakukan ini kecuali jika Anda bersikeras pada nilai 0. Ekstensi HtmlHelper DropDownList memungkinkan Anda menyetel label opsi yang muncul sebagai nilai awal dalam pemilihan dengan nilai null. Cukup gunakan salah satu tanda tangan DropDownList yang memiliki label opsi.
sumber
@Html.DropDownListFor( m => m.MenuSelection, (IEnumerable<SelectListItem>)ViewBag.Menu, "Select One", null )
misalnya, termasuk nullhtmlAttributes
untuk menghindari kebingungan dengan tanda tangan yang mengambil ekspresi, enumerasi menu, dan objek (htmlAttributes).dataValueField
dandataTestField
yang membuat ini tidak bekerja saat menambahkan nilai optionLabel. Ini mungkin bisa bekerja dengan sedikit usaha tetapi saya hanya menggunakan salah satu solusi alternatif. Terima kasih!Saya mendapatkan ini untuk bekerja dengan Mengisi SelectListItem, mengonversi ke Daftar, dan menambahkan nilai pada indeks 0.
sumber
Ini mungkin.
sumber
Saya menyukai jawaban @ AshOoO tetapi seperti @Rajan Rawal, saya harus mempertahankan status item yang dipilih, jika ada. Jadi saya menambahkan penyesuaian saya ke metodenya
AddFirstItem()
sumber
Ini Harus melakukan apa yang Anda butuhkan, cukup kirim daftar pilih Anda dan itu akan mengembalikan daftar pilih dengan item dalam indeks 0
Anda dapat memilih teks, nilai atau bahkan indeks item yang perlu Anda masukkan
sumber
Berikut pembantu html untuk Anda
sumber
Metode .ToList (). Insert (..) menempatkan elemen ke dalam Daftar Anda. Posisi apa pun dapat ditentukan. Setelah ToList tambahkan saja .Insert (0, "- - First Item - -")
Kode Anda
Kode Baru
sumber
Mungkin kedengarannya tidak elegan, tetapi saya biasanya melakukan sesuatu seperti ini:
sumber
Oke saya suka kode bersih jadi saya membuat ini metode ekstensi
Penggunaan (dengan contoh):
sumber
Karena opsi ini mungkin perlu dalam banyak cara yang berbeda, saya mencapai kesimpulan untuk mengembangkan sebuah objek sehingga dapat digunakan dalam skenario yang berbeda dan dalam proyek-proyek mendatang
pertama tambahkan kelas ini ke proyek Anda
Sekarang di Controller Action Anda bisa melakukan seperti ini
Dan akhirnya di View Anda akan membuat kode seperti ini.
sumber
Solusinya adalah dengan menggunakan jawaban @ tvanfosson (jawaban yang dipilih) dan menggunakan JQuery (atau Javascript) untuk menyetel nilai opsi ke 0:
Semoga ini membantu.
sumber
Coba sesuatu seperti kode berikut:
sumber
Saya tidak jika orang lain memiliki pilihan yang lebih baik ...
sumber