ASP .NET C # - Programmatically / déplier vitres d'accordéon AJAX?
-
12-09-2019 - |
Question
Utilisation de .NET 3.5.
Comment puis-je programmtically ouvrir / fermer les vitres contenues dans un contrôle d'accordéon AJAX?
Ma page aura plusieurs contrôles Accordéons que je veux être en mesure de masse / déplier avec quelques boutons.
Update1
Ma solution de code final ressemble à ceci:
<script language="javascript">
function collapse_all(flag)
{
if(flag==true)
{
var behavior = $get("<%=Accordion1.ClientID%>").AccordionBehavior;
behavior.set_SelectedIndex(-1);
}
else
{
var behavior = $get("<%=Accordion1.ClientID%>").AccordionBehavior;
behavior.set_SelectedIndex(0);
}
}
</script>
La solution
vous trouverez le contrôle de accourdion en javascript et appeler "set_SelectedIndex (-1)"
so (en utilisant jquery)
$("#<%=Accordion1.ClientID%>_AccordionExtender").set_SelectedIndex(-1)
si vous avez un peu, vous pouvez les faire tous discrètement ou utiliser l'un des sélecteurs de jquery pour les trouver, les accordéons devront avoir été mis en place pour permettre à tous les volets pour fermer je crois (RequireOpenedPane = false)
Autres conseils
Vous ne pouvez pas les étendre programmation via votre code côté serveur (VB.NET/C#) parce que l'expansion des vitres se fait dans le code côté client (JavaScript). Si je vous, je vous suggère de jeter un oeil à la JQuery Les bibliothèques et en utilisant leur émission / cacher les fonctions de construire un contrôle d'accordéon personnalisé pour faire ce que vous voulez. JQuery semblera moins « WebForm-like » mais vous trouverez beaucoup plus souple que le AJAX Control Toolkit.
Si vous mettez le contrôle de l'accordéon dans un panneau de mise à jour ajax asp.net, vous pouvez réduire toutes les fenêtres facilement via le codebehind réglage de l'index sélectionné à zéro.