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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<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>
Le but est lors du survol des liens, affiché des détails sur la ligne concerné.
La fonction montre est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 mon updatepanel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Et enfin, coté serveur, j'éxécute ma requete puis mets à jour popBox :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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    
}
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.
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 ?