Question

OK, je ne suis pas sûr que le titre soit tout à fait exact, ouvert aux suggestions !

Je suis en train de créer un contrôle personnalisé ASP.NET, c'est quelque chose qui est encore relativement nouveau pour moi, alors soyez patient avec moi.

Je pense au modèle événementiel.Puisque nous n'utilisons pas de contrôles Web, aucun événement n'est déclenché à partir des boutons, j'appelle plutôt manuellement __doPostBack avec les arguments appropriés.Cependant, cela peut évidemment signifier qu'il y a beaucoup de publications lors de la sélection, par exemple, d'options (qui s'affichent différemment lorsqu'elles sont sélectionnées).

Avec le temps, je devrai rendre cela plus Ajax-y et réactif, je devrai donc modifier la liaison d'événement pour appeler du Javascript local.

Donc, je pensais que je devrais pouvoir basculer le "mode" du contrôle, il peut soit utiliser la publication et se gérer lui-même, soit spécifier les noms de fonctions Javascript à appeler à la place de doPostBack.

  • Que pensez-vous de ceci?
  • Est-ce que j'aborde le déclenchement des événements du contrôle de la mauvaise manière ?(totalement ouvert aux suggestions ici !)
  • Comment aborderiez-vous un problème similaire ?

Modifier - Pour clarifier

  • Je crée un contrôle rendu personnalisé (c'est-à-direhérite de WebControl).
  • Nous n'utilisons pas de contrôles Web existants car nous souhaitons un contrôle complet sur la sortie rendue.
  • AFAIK, le seul moyen d'obtenir qu'un événement côté serveur se produise à partir d'un contrôle rendu personnalisé est d'appeler doPostBack à partir des éléments rendus (veuillez corriger si vous vous trompez !).
  • ASP.NET MVC n'est pas une option.
Était-ce utile?

La solution 2

J'ai creusé un peu plus à ce sujet et j'ai découvert comment injecter Javascript dans le client lorsque cela est nécessaire.Cela jouera évidemment un rôle important en rendant les contrôles plus réactifs et en réduisant les allers-retours vers le serveur.

Par exemple: RegisterClientScriptBlock.

Au plaisir de jouer davantage avec cela, n'hésitez pas à impliquer les gens !

Autres conseils

Très étrange.Vous utilisez des contrôles serveur ASP.NET et des contrôles personnalisés, mais vous n'utilisez pas de contrôles Web ?Et vous appelez __doPostBack manuellement ?

Aimez-vous faire les choses à la dure ?

Si j'utilisais toujours le modèle de contrôle de serveur plutôt que MVC, j'appliquerais les contrôles ASP.NET Ajax sur cette ventouse et je l'appellerais un jour.Ce que vous faites, c'est comme installer un ventilateur sur un modèle T.Cela peut être amusant et intéressant, mais une fois que vous avez terminé tout le travail acharné, qu'avez-vous vraiment ?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top