J'essaie de remplacer les postbacks par le traitement côté client javascript chaque fois que je peux dans mon code aspnet C# 3.5 afin d'améliorer l'expérience utilisateur. Je n'utilise aucun framework javascript. J'utilise vs2008.Comment utiliser Javascript pour obtenir le nom du UserControl à partir duquel il est appelé?
J'ai un fichier usercontrol .ascx avec une liste déroulante et un bouton qui est utilisé à trois endroits sur mon écran principal.
J'avais fait une publication sur OnSelectedIndexChanged pour la liste déroulante. Je n'ai pas besoin de publier à chaque fois, donc j'ai essayé de mettre une fonction javascript dans le contrôle usercontrol pour vérifier l'élément sélectionné et ne faire une publication que si elle commence par '-'. Cependant, le nom des éléments dont j'ai besoin pour $ get dans ma fonction javascript dépend du nom de l'instance usercontrol qui l'appelle, et j'ai besoin d'obtenir ce nom lors de l'exécution, par exemple: uc1_ddlLocations et uc1_btnPostBack.
Voici le code:
<script type="text/javascript" language="javascript">
function ddlChange(this) {
var loc = $get("GetTheUserControlNameAndInsertHere_ddlLocations");
if (loc.value.substring(0,1)=='-')
{
var btn = $get("GetTheUserControlNameAndInsertHere_btnPostBack ");
btn.click();
}
</script>
Comment puis-je faire? Quelqu'un peut-il suggérer une meilleure façon de faire ce que j'essaie de faire?
Est-ce que le UserControl lui-même savoir si un postback est nécessaire? Un paramètre "needsPostback" peut-il être passé à ddlChange()? – Mike
Je ne suis pas certain de comprendre votre question. Pour UserControl pour savoir s'il a besoin d'une publication, il doit effectuer une publication. –
@Mike, @Lill: la fonction détermine si la publication est nécessaire, pas le ddl lui-même. Le ddl effectuera toujours une publication ("AutoPostBack = True") ou jamais ("AutoPostBack = false"). Il essaie d'insérer une logique conditionnelle pour réduire le coût de la bande passante. – JustLoren