Problème avec ajax updatepanel et un multiview

cv51 Messages postés 6 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 19 novembre 2008 - 16 nov. 2008 à 02:07
ggtry Messages postés 417 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 21 juillet 2010 - 17 nov. 2008 à 20:51
Bonjour,

j'ai crée une page avec un multiview qui fonctionne mais pour éviter le recharger complet de la page j'ai ajouté un updatepanel et là je rencontre qqs difficultés, si qqn pouvait m'aider, je débute avec le Updatepanel.
par avance merci de votre aide
voici le code source de ma page :
<hr /><%

@
Page
Language="VB"
MasterPageFile="~/master2.master"
AutoEventWireup="false"
CodeFile="testcv10.aspx.vb"
Inherits="testcv10"
title="Page sans titre" %>

:Content
ID="Content1"
ContentPlaceHolderID="head"
Runat="Server">
<asp:Content>
<asp:Content
ID="Content2"
ContentPlaceHolderID="ContentPlaceHolder1"
Runat="Server">
<asp:DropDownList
ID="DropDownList1"
runat="server"
AutoPostBack="True">
   <asp:ListItem
Value="0">Chƒlons en Champagne
</asp:ListItem>
  <asp:ListItem
Value="1">Epernay
</asp:ListItem>
.......    ma liste contient 7 choix
......
  </asp:DropDownList>

<asp:UpdatePanel
ID="UpdatePanel1"
runat="server"
RenderMode="Inline">
<ContentTemplate>

   <asp:MultiView
ID="MultiView1"
runat="server"
ActiveViewIndex=0>
      <asp:View
ID="v51108"
runat="server">
        <SCRIPT
LANGUAGE="JavaScript"
SRC="http://www.meteofrance.com/FR/partenaires/vignetteMeteoVille2.jsp? 
 LIEUID=FR51108"
TYPE="text/javascript">
       </SCRIPT>
   </asp:View>
  <asp:View
ID="v51230"
runat="server">
     <SCRIPT
LANGUAGE="JavaScript"
SRC="http://www.meteofrance.com/FR/partenaires/vignetteMeteoVille2.jsp?LIEUID=FR51230"
TYPE="text/javascript">
     </SCRIPT>
   </asp:View>
.......
....... autant de views que de choix

</asp:MultiView>

</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger
ControlID="DropDownList1"
EventName="SelectedIndexChanged"
/>
</Triggers>
</asp:UpdatePanel>

</asp:Content>
<hr />
le code vb:
Partial

Class testcv10

Inherits System.Web.UI.Page

Protected
Sub Page_Load(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles
Me.Load

  Dim activeviewindex = 0
  MultiView1.ActiveViewIndex = activeviewindex

End
Sub

Protected
Sub DropDownList1_SelectedIndexChanged(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles DropDownList1.SelectedIndexChanged
   MultiView1.ActiveViewIndex = DropDownList1.SelectedValue

End
SubEnd

Class

3 réponses

cv51 Messages postés 6 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 19 novembre 2008
16 nov. 2008 à 17:44
ps : le scriptmanager est dans ma masterpage   
0
cv51 Messages postés 6 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 19 novembre 2008
17 nov. 2008 à 01:02
re bonjour,
j'ai ajouté un textbox pour voir la valeur du selectindex, au load de la page il est bien = 0,
Protected

Sub Page_Load(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMe.Load

Dim activeviewindex = 0
MultiView1.ActiveViewIndex = activeviewindex
TextBox1.Text = activeviewindex

End
Sub

Protected
Sub DropDownList1_SelectedIndexChanged(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles DropDownList1.SelectedIndexChanged
TextBox1.Text =
""
MultiView1.ActiveViewIndex = DropDownList1.SelectedValue
TextBox1.Text = DropDownList1.SelectedValue

End
Subau chargement de ma page j'ai bien la 1ère vue d'affichée mais lors d'une sélectuon dans la liste rien ne s'affiche et texbox1 reste à 0

Merci de votre aide
0
ggtry Messages postés 417 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 21 juillet 2010 1
17 nov. 2008 à 20:51
Bonsoir,

Tu ne dis pas vraiment où se pose le problème...
Pour ton dernier message, si le textbox affiche toujours 0, c'est peut-être que tu ne l'as pas mis dans l'updatepanel. Il n'est donc pas rafraîchi.
Pour le reste de ton code, il fonctionne sans doute correctement, mais le problème doit se poser au niveau du type de document que tu affiches dans ton multiview.
Le .jsp ne sera chargé que lors du premier load de la page. Lors de la mise à jour de l'updatepanel, comme la page n'est pas complétement rechargée, le nouveau lien au .jsp n'est pas réexécuté, et donc rien ne s'affiche.
Si c'est le cas, je ne sais pas s'il existe une solution directe. Mais tu peux essayer de contourner avec un iframe. Il te suffit dans ce cas de créer une nouvelle page qui ne servira qu'à afficher ton lien météo. Tu mets cette nouvelle page comme src de l'iframe, par exemple :

Tu récupéres "ville" avec request.querystring dans ta nouvelle page (=TaPageMeteo) qui sera affichée dans l'iframe.
A la rigueur, tu pourrais même te passer du multiview dans ce cas... mais ça dépend de ce que tu y affiches d'autre part, et tu peux très bien le conserver.

GGtry
0
Rejoignez-nous