Bonjour,
depuis hier j'essaie de faire marcher l'updatepanel, mais j'ai un comportement bizarre.
Le principe est simple, dans un gridview, j'ai des liens :
Le but est lors du survol des liens, affiché des détails sur la ligne concerné.Code:<asp:HyperLink id="HyperLink5" runat="server" Text='<%# Eval("NB") %>' Forecolor="black" NavigateUrl="#" onMouseOver='<%# Eval("ID_ANO", "javascript: montre({0})") %>' onMouseOut="javascript: cache()" onClientClick="javascript:return false;"></asp:HyperLink>
La fonction montre est :
Et mon updatepanel :Code:
1
2
3
4
5
6 function montre(id) { var elt = document.getElementById('ctl00_ContentPlaceHolder1_popBox'); elt.style.display = "block"; document.getElementById('ctl00_ContentPlaceHolder1_TextBoxUpdate').value = id; document.getElementById('ctl00_ContentPlaceHolder1_ButtonUpdate').click(); }
Et enfin, coté serveur, j'éxécute ma requete puis mets à jour popBox :Code:
1
2
3
4
5
6
7
8
9
10
11
12 <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> <Triggers> <asp:AsyncPostBackTrigger ControlID="ButtonUpdate" /> </Triggers> <ContentTemplate> <asp:Button ID="ButtonUpdate" runat="server" Text="titi"/> <asp:TextBox ID="TextBoxUpdate" runat=server ></asp:TextBox> <div runat="server" id="popBox" style="background-color:White; position: absolute; display:none; "> toto </div> </ContentTemplate> </asp:UpdatePanel>
Donc quand je survole un lien, la valeur du textbox prend bien l'id, et la requete est faite en async. Mais j'ai maintenant l'erreur : sys.webforms.pagesrequestmanagerparsererrorexception.Code:
1
2
3
4
5
6
7 protected void UpdatePanel1_Load(object sender, EventArgs e) { //requet sql popBox.InnerHtml = "<table border=1 bordercolor=\"#000\"><tr><td>Date souhaitée</td><td>Date proposée intégrateur</td><td>Date de MAJ</td></tr>"; popBox.InnerHtml += // données de la bdd }
J'ai déjà fait des recherches dessus, et je ne suis pas dans les cas cité, je n'ai pas activé la trace, et je ne fais pas de response.write...
Le code behind, en le mettant directement dans le pageload de la page plutot que de l'updatepanel, j'obtiens bien des données, mais toujours de l'id précédent sélectionné... Pas celui sur lequel je suis actuellement.
De plus, autre probleme, la page ou je suis est tres grosse, et du coup cela met plusieurs secondes pour mafficher mon résultat alors que la requete et les données supplémentaires à afficher sont tres légères...
Donc voila, est ce que c'est moi qui utilise mal les possibilités AJAX du .NET ou c'est vraiment mal foutu ? :?