J'ai accidentellement découvert une différence entre 2.0 et 1.1 et je l'ai notée pour la rappeler à tout le monde.
Il s’agit de générer du code pour la première page. Nous savons que les contrôles du serveur asp.net seront éventuellement interprétés dans les scripts javascript front-end et les codes HTML. Par exemple, le contrôle « datagrid » sera interprété dans l'étiquette « table » et le contrôle « CheckBox » sera interprété. dans " Un incident accidentel a trouvé un problème. J'ai directement copié certains scripts js sous 1.1 et je les ai utilisés dans des projets sous 2.0. J'ai trouvé des erreurs et des erreurs de script. Ensuite, j'ai étudié attentivement le code frontend généré par asp.net2. , le secret a été découvert. Sous asp.net, une fois le contrôle serveur dans la colonne du modèle de grille de données interprété, l'étiquette générée générera un nouvel ID basé sur l'ID du contrôle serveur d'origine.
Par exemple (sous asp.net1.1), le contrôle CheckBox est utilisé dans la colonne modèle du contrôle DataGrid :
Après avoir expliqué le HTML à la réception, cela devient :
Sélectionner | Nom de la couleur | Encodage HTML couleur | |
16 | 213` | 123123 |
Cela devient
Le "myDataGrid__ctl2_CheckBox1" ici est automatiquement ajouté par asp.net. Il est généré en combinant l'identifiant du DataGrid où il se trouve, son propre identifiant et la ligne où les données sont liées.
Les résultats ci-dessus ont été générés sous asp.net1.1. L'identifiant généré par 2.0 a changé. L'identifiant n'est pas myDataGrid__ctl2_CheckBox1, mais myDataGrid:_ctl2:CheckBox1, mais l'attribut name reste inchangé. Rendez simplement l'identifiant et le nom cohérents. En fait, cela devrait être comme ça. C'est peut-être l'un des aspects déraisonnables de dotnet1.1.
Une petite découverte, j'espère qu'elle aidera tout le monde.