J'utilise une application Web ASP.NET AJAX (ASP.NET 2.0 et AJAX Toolkit 1.0) qui contient un bouton et 2 UpdatePanels (UpdatePanel_1 et UpdatePanel_2)Masquer/Afficher les contrôles AJAX avec
Le bouton est enregistré avec RegisterAsyncPostBackControl dans l'objet ScriptManager UpdatePanel_1 est en mode de mise à jour "Conditionnel" et contient un TextBox.
UpdatePanel_2 est en mode de mise à jour « toujours » et contient une autre zone de texte
Lorsque le bouton est enfoncé son gestionnaire appelle UpdatePanel_1.Update() qui met à jour la valeur de la zone de texte basée sur une valeur choisie au hasard dans une liste; également la zone de texte de UpdatePanel_2 est mis à jour automatiquement, également sans rafraîchir la page
Sur la base de la valeur d'une variable ViewState booléenne Je voudrais aussi cacher/montrer les UpdatePanels alternativement, mais j'obtiens l'erreur:
" Sys.InvalidOperationException: dans un autre UpdatePanel »
n'a pas pu trouver UpdatePanel avec ID « UpdatePanel_2 »(ou UpdatePanel_1)
Si elle est mise à jour dynamiquement, alors il doit être Comment peut-il être fait sans ajouter de plus. Habillage UpdatePanels?
protected void Page_Load(object sender, EventArgs e)
{
ScriptManager1.RegisterAsyncPostBackControl(Button1);
if (!IsPostBack)
{
Visibility = true;
}
UpdatePanel_1.Visible = !Visibility;
UpdatePanel_2.Visible = Visibility;
Visibility = !Visibility;
}
protected void Button1_Click(object sender, EventArgs e)
{
if (Panel1.Visible)
UpdatePanel_1.Update();
}
protected bool Visibility
{
get
{
return (bool)(ViewState["Visibility"] ?? true);
}
set
{
ViewState["Visibility"] = value;
}
}