ID Artikel: 316495 - Kajian Terakhir: 24 September 2011 - Revisi: 2.0

BUG: Radio Button tidak saling eksklusif ketika digunakan dalam kontrol Server Repeater

Tips SistemThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.

Pada Halaman ini

Perbesar semua | Perkecil semua

GEJALA

Ketika Anda menambahkan ASP.NET RadioButton kontrol untuk ItemTemplate dari data-terikat Repeater Server kontrol, RadioButton kontrol yang Anda buat tidak saling eksklusif ketika Anda menjalankan ASP.Halaman bersih. Masalah ini terjadi bahkan jika GroupName atribut diatur untuk RadioButton kontrol.

PENYEBAB

Masalah ini terjadi karena Repeater kontrol server mengimplementasikan INamingContainer antarmuka, yang mengharuskan semua kontrol yang bersarang di dalamnya harus memiliki nama unik ketika diberikan dalam Hypertext Markup Language (HTML). Oleh karena itu, HTML atribut nama anak diberikan kontrol server unik.

STATUS

Microsoft telah mengkonfirmasi bahwa ini adalah bug dalam produk Microsoft yang didaftar pada awal artikel ini.

INFORMASI LEBIH LANJUT

HTML versi 3.2 dan kemudian memerlukan semua kontrol tombol radio yang saling eksklusif memiliki atribut nama unik yang sama. Karena kontrol yang berada di dalam terikat Repeater memutuskan kontrol harus memiliki nama unik, HTML diterjemahkan RadioButton kontrol tidak saling eksklusif.

Perhatikan bahwa GroupName atribut harus mengatasi masalah ini. Jika Anda menetapkan GroupName atribut, setiap RadioButton kontrol harus membuat sama HTML nama atribut yang ditentukan oleh GroupName atribut kontrol server. Perilaku yang diharapkan tidak terjadi karena klien unik penamaan mengabaikan penggunaan GroupName properti.

Langkah-langkah untuk Mereproduksi Masalah

  1. Buat baru Microsoft Visual C#.NET Web aplikasi proyek.
  2. Dalam tampilan desain, tarik Repeater kontrol server untuk halaman Webform1.aspx default.
  3. Dalam tampilan HTML, tambahkan berikut <itemtemplate></itemtemplate> kode untuk Repeater1:
    <ItemTemplate>
    <asp:RadioButton id="RadioButton1" runat="server" GroupName="RadioButton1" Text="<%#Container.DataItem.ToString()%>">
    </asp:RadioButton><br>
    </ItemTemplate>
    					
  4. Dalam Page_Load acara Webform1.aspx, tambahkan kode berikut:
    			TestArray[0]="Test Value 0";
    			TestArray[1]="Test Value 1";
    			TestArray[2]="Test Value 2";
    
    			Repeater1.DataSource = TestArray;
    			Repeater1.DataBind();
    					
  5. Menambahkan variabel contoh berikut untuk Halaman kelas:
    protected String[] TestArray = new String[3];
    					
  6. Membangun proyek, dan kemudian melihat halaman dalam browser.
  7. Klik masing-masing individu RadioButton kontrol untuk memverifikasi bahwa Anda bisa memilih mereka tanpa mengubah nilai yang lain RadioButton kontrol.

Berlaku bagi:
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
Kata kunci: 
kbbug kbdatabinding kbnofix kbservercontrols kbwebforms kbmt KB316495 KbMtid
Penerjemahan MesinPenerjemahan 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:316495  (http://support.microsoft.com/kb/316495/en-us/ )