
Έχω κληρονομήσει ένα έργο ASP.NET 2.0 και ένα από τα πράγματα που έχω παρατηρήσει είναι ότι ο χρήστης έχει να κάνει κλικ μια `dropdownlist`δυο φορές για να το επεκτείνετε - γιατί είναι αυτό;


**Αλληλουχία γεγονότων**


1. Το πρώτο κλικ με το να εστιάσετε έλεγχο και το δεύτερο θα το επεκτείνει.
2. Η εφαρμογή χρησιμοποιεί τις σελίδες Δάσκαλος / Περιεχόμενο και είναι ενεργοποιημένη Ajax.


Μοιάζει με αυτό δεν συμβαίνει σε IE6, αλλά συμβαίνει σε IE7.

 
Έχετε να κάνετε κλικ δύο φορές για να επεκτείνετε DropDownList σε ASP.NET
=========================================================================



Βρέθηκαν αυτό και ταξινομημένο το (προς το παρόν).


Το πρόβλημα ήταν να προκληθεί από μια λειτουργία JavaScript η οποία εισήχθη από ένα UserControl και ήταν προσθέτοντας styling στους DropDownLists. Γιατί αυτό δεν έγινε στο CSS Δεν έχω ιδέα (αλλά θα είναι σύντομα), αλλά σχολιάζοντας την παρακάτω λειτουργία λυθεί το πρόβλημά μου:



```
    function inputOnFocus(objInput)
    {
        objInput.style.backgroundColor = sHighLightBgColor;
        objInput.style.border = sBorderHighlight;

        //objInput.className = "inputOnFocus";
        sIDWithFocus = objInput.id;
    }

```

Δεν είμαι βέβαιος πώς / γιατί αυτό που εφαρμόζεται σε ορισμένες DDLs και όχι τους άλλους, αλλά προς το παρόν (με την επίδειξη του πελάτη έρχεται) εγώ δεν ενδιαφέρονται πραγματικά - θα σκάψει σε ότι όταν έχω την ευκαιρία.


Χάρη @LFSR Consulting, @Scott Evernden και @kogus για τη συμβολή σας.

 

Ξέρω ότι είμαι απόσπαση σε ένα παλιό νήμα? Ωστόσο, θα ήθελα να μοιραστώ δύο σεντ μου σε αυτό, δεδομένου ότι μπορεί να βοηθήσει κανέναν στο μέλλον.


Ήμουν πρόσφατα εργαζόταν σε ένα γρήγορο μορφή και ήθελε να τονίσει όλα τα πεδία που ένας χρήστης θα πάει να με κίτρινα, και προφανώς πάει πίσω στο λευκό, όταν χάθηκε η εστίαση.


Χωρίς να υπεισέλθουμε σε κώδικα, αφού εγώ δεν δουλεύω με ASP.NET, μόνο το τμήμα javascript ... ό, τι έκανα για να διορθωθεί αυτό ήταν να δημιουργήσει ένα άλλο γεγονός για onmousedown. Με απλά με το τμήμα onFocus θα οδηγήσει σε μένα να πρέπει να κάνετε κλικ δύο φορές σε ένα αναπτυσσόμενο πλαίσιο. Μόλις για να ρυθμίσετε την εστίαση, ένα άλλο για να κάνετε κλικ και να απαριθμήσει τα στοιχεία. Με την προσθήκη του onmousedown λειτουργία, τότε επιτρέπεται αλλάζει χρώμα μου να λάβει χώρα κατά κλικ, καθώς και μια καρτέλα ή άλλη μορφή μετατόπιση εστίασης.


Φυσικά, δεν υπάρχει καμία ανάγκη να έχουμε μια αντίστοιχη, όπως η onblur φρόντισε αυτό (το αντίστοιχο του onFocus).

 

Εάν χρησιμοποιείτε IE7 και τη χρήση του κειμένου onFocus για αυτά τα κατεβάζει πτώση ρίξτε μια ματιά σε αυτό:


<http://forums.asp.net/p/1049119/1479078.aspx#1479078>


Διαφορετικά, μπορεί να σας προτείνω να ρίξουμε μια ματιά σε:


- είναι μια κλήση που γίνεται στο διακομιστή onFocus, όπου IsPostBack δεν αντιμετωπίζεται σωστά στο Page\_Load;
- εφιστά ένα κενό για οποιεσδήποτε άλλες ιδέες ...
Μπορείτε να ρίξει κάποιο κώδικα έτσι μπορούμε να ρίξουμε μια ματιά;


Δεν ξέρω αν αυτό είναι η καλύτερη λύση και δεν το έχω δοκιμάσει .. αλλά πώς για setfocus σε onload () για τον έλεγχο στην ερώτηση;

 

Είναι τα στοιχεία drop-down που κατοικείται σε περίπτωση on-drop-down; Αν ναι, μια εύκολη λύση θα ήταν να θέσει την κατάσταση DroppedDown σε True στο τέλος του φορτίου δεδομένων.

 