Αναγν. άρθρου: 316495 - Τελευταία αναθεώρηση: Τρίτη, 21 Δεκεμβρίου 2010 - Αναθεώρηση: 2.0

BUG: Κουμπιά επιλογής δεν είναι αμοιβαίο αποκλειστική χρήση όταν χρησιμοποιείται σε ένα στοιχείο ελέγχου διακομιστή Repeater

Συμβουλή συστήματοςΑυτό το άρθρο ισχύει για διαφορετικό λειτουργικό σύστημα από αυτό που χρησιμοποιείτε. Το περιεχόμενο του άρθρου που ενδέχεται να μην σας αφορά έχει απενεργοποιηθεί.

Σε αυτήν τη σελίδα

Ανάπτυξη όλων | Σύμπτυξη όλων

Συμπτώματα

Όταν προσθέτετε μια ASP.NETRadioButtonΈλεγχος για τοItemTemplateαπό ένα συνδεδεμένο με δεδομέναRepeaterστοιχείο ελέγχου διακομιστή, τοRadioButtonστοιχείο ελέγχου που δημιουργήσατε δεν είναι αμοιβαία αποκλειόμενες κατά την εκτέλεση της σελίδας ASP.NET. Αυτό το ζήτημα προκύπτει ακόμα και αν τοGroupNameχαρακτηριστικό έχει οριστεί για τοRadioButton"Φόρμες του Office" (Office Forms).

Αιτία

Αυτό το ζήτημα παρουσιάζεται επειδή τοRepeaterστοιχείο ελέγχου διακομιστή υλοποιεί τοINamingContainerπεριβάλλον, το οποίο απαιτεί όλα τα στοιχεία ελέγχου που είναι ένθετη πρέπει να έχουν ένα μοναδικό όνομα όταν αποδίδεται σε το Hypertext Markup Language (HTML). Επομένως, το χαρακτηριστικό ονόματος HTML από οποιοδήποτε στοιχείο ελέγχου διακομιστή αποδίδεται παιδί είναι μοναδικό.

Κατάσταση

Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα σφάλμα το οποίο παρουσιάζεται στα προϊόντα της, που αναφέρονται στην αρχή αυτού του άρθρου.

Περισσότερες πληροφορίες

HTML έκδοση 3.2 και νεότερες απαιτούν ότι όλα τα στοιχεία ελέγχου κουμπί επιλογής που είναι αμοιβαία αποκλειόμενες έχουν το ίδιο χαρακτηριστικό μοναδικό όνομα. Επειδή τα στοιχεία ελέγχου που βρίσκονται μέσα σε ένα όριοRepeaterδιακομιστής ελέγχου πρέπει να έχει ένα μοναδικό όνομα, η απόδοση HTMLRadioButtonστοιχείο ελέγχου δεν είναι αμοιβαίως αποκλειόμενα.

Σημειώστε ότι τοGroupNameτο χαρακτηριστικό πρέπει να επιλύσει αυτό το ζήτημα. Εάν ορίσετε τοGroupNameχαρακτηριστικό, κάθεRadioButtonστοιχείο ελέγχου πρέπει να αποδώσει το ίδιο χαρακτηριστικό ονόματος HTML που καθορίστηκε από τοGroupNameτο χαρακτηριστικό του στοιχείου ελέγχου διακομιστή. Η αναμενόμενη συμπεριφορά δεν παρουσιάζεται επειδή το πρόγραμμα-πελάτης μοναδική ονομασία υπερισχύει της χρήσης τουGroupNameΙδιότητα.

Βήματα για την αναπαραγωγή του ζητήματος

  1. Για να δημιουργήσετε ένα νέο έργο της εφαρμογής Microsoft Visual C# .NET Web.
  2. Στην προβολή σχεδίασης, σύρετε έναRepeaterστοιχείο ελέγχου διακομιστή στην προεπιλεγμένη σελίδα Webform1.aspx.
  3. Σε προβολή HTML, προσθέστε τα εξής<itemtemplate></itemtemplate>Repeater1 κώδικα:
    <ItemTemplate>
    <asp:RadioButton id="RadioButton1" runat="server" GroupName="RadioButton1" Text="<%#Container.DataItem.ToString()%>">
    </asp:RadioButton><br>
    </ItemTemplate>
    					
  4. ΣτοPage_Loadτο συμβάν Webform1.aspx, προσθέστε τον ακόλουθο κώδικα:
    			TestArray[0]="Test Value 0";
    			TestArray[1]="Test Value 1";
    			TestArray[2]="Test Value 2";
    
    			Repeater1.DataSource = TestArray;
    			Repeater1.DataBind();
    					
  5. Προσθέστε την ακόλουθη μεταβλητή παρουσίας για τοτου διαφημιζόμενου πελάτη ΒCLASS:
    protected String[] TestArray = new String[3];
    					
  6. Δημιουργήστε το έργο και στη συνέχεια προβάλετε τη σελίδα στο πρόγραμμα περιήγησης.
  7. Κάντε κλικ σε κάθε άτομοRadioButtonστοιχείο ελέγχου για να βεβαιωθείτε ότι μπορείτε να επιλέξετε τους χωρίς να αλλάξετε την τιμή της άλληςRadioButton"Φόρμες του Office" (Office Forms).

Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
Λέξεις-κλειδιά: 
kbbug kbdatabinding kbnofix kbservercontrols kbwebforms kbmt KB316495 KbMtel
Μηχανικά μεταφρασμένοΜηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:316495  (http://support.microsoft.com/kb/316495/en-us/ )