2015-11-02 6 views
1

Je me demande quelle est la différence entre le fait que deux méthodes d'appel postback dans mon contrôle serveur personnalisé:Evénements ASP NET Control Server personnalisée

Page.ClientScript.GetPostBackEventReference(new PostBackOptions (this)) 

ou manuellement

__doPostBack('MyControl1', '') 

qui de ces deux solutions est préférable de préférer et pourquoi?

Répondre

1

Je trouve qu'en règle générale, il vaut mieux éviter les ID en dur dans JavaScript de cette façon. J'ai également trouvé qu'il est préférable de laisser ASP générer des choses pour vous là où il le peut, ASP obtient ce que ASP attend.

Si vous laissez ASP générer votre __doPostback pour vous, alors vous savez que ASP sait de quel contrôle vous parlez. Vous obtiendrez les eventtarget et eventargument corrects pour le contrôle en question lorsque vous utilisez ClientScript.GetPostbackEventReference. Même si vous le déplacez dans le balisage ou faites quelque chose pour changer son ASP clientID sait toujours de quoi vous parlez parce qu'il génère le JavaScript. D'accord, vous pourriez éviter cet écueil particulier avec un emplacement bien <% = MyControl1.ClientID%>, mais je pense que le garder dans le back-end est plus propre. J'ai essayé de trouver un article ou un blog parlant de cela pour me soutenir afin que ce ne soit pas strictement une opinion, mais la plupart de ce que j'ai trouvé était instructif sur comment l'utiliser plutôt que d'un POURQUOI vous devriez utiliser il.