Menyelesaikan masalah AjaxToolkit SliderExtender dalam Kawalan Pengguna
Menambah AjaxToolkit SliderExtender pada kawalan pengguna kadangkala boleh mengakibatkan ralat: "Koleksi Kawalan tidak boleh diubah suai kerana kawalan mengandungi blok kod." Ini biasanya berlaku apabila blok kod sebelah pelayan wujud dalam penanda kawalan pengguna.
Penyelesaian:
Penyelesaian melibatkan pemfaktoran semula kod sebelah pelayan anda. Daripada menggunakan Response.Write
blok kod, laksanakan ungkapan mengikat data. Contohnya, gantikan kod Response.Write()
dengan pengikatan data yang setara. Ini menghalang kod daripada ditafsirkan sebagai kod sebelah pelayan semasa kitaran hayat kawalan, membenarkan pengubahsuaian koleksi Controls
.
Berikut ialah ilustrasi ringkas: (Nota: Contoh teg <head>
yang disediakan dalam asal tidak lengkap dan tiada konteks. Contoh yang lebih berkaitan akan menunjukkan pernyataan Response.Write
dalam penanda kawalan pengguna.)
Anggap anda mempunyai Response.Write
pernyataan seperti ini dalam fail .ascx
kawalan pengguna anda:
<code class="language-C#"><% Response.Write(someVariable); %></code>
Ganti dengan ungkapan mengikat data:
<code class="language-asp.net"><%= someVariable %></code>
Akhir sekali, tambahkan kod berikut pada fail di belakang kod (.aspx.cs
) halaman induk anda:
<code class="language-C#">protected void Page_Load(object sender, EventArgs e) { Page.Header.DataBind(); }</code>
Panggilan DataBind()
ini memastikan ungkapan mengikat data dinilai dengan betul sebelum koleksi Controls
diubah suai, dengan itu menyelesaikan ralat dan membolehkan penambahan SliderExtender yang berjaya.
Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menambah AjaxToolkit SliderExtender pada Kawalan Pengguna Saya, dan Bagaimana Saya Boleh Membetulkan Ralat 'Koleksi Kawalan Tidak Boleh Diubah Suai'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!