Bonjour tout le monde,
j'ai un souci avec une gridView qui met du temps a s'afficher.
Dans les faits, si je fait une pagination avec pagesize=100, tout va bien, mais si j'affiche au dessus de cette valeur, ca rame fortement.

Je me suis rendu compte que le probleme venait d'une colonne constituée d'un item template , de hiddenfields, textbox et un regularExpressionValidator.

voici le code de la colonne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
 
<asp:TemplateField FooterStyle-HorizontalAlign="right" HeaderText="<%$ Resources:GL, gl_objectifs_valides %>"
                            ItemStyle-HorizontalAlign="Right" ItemStyle-Width="10%">
                                <ItemTemplate>
                                    <div>
                                        <asp:HiddenField ID="hdfGlTerrainId" Value='<%#Eval("gl_terrain_id") %>' runat="server" />
                                        <asp:HiddenField ID="hdfGlPerimetreId" Value='<%#Eval("gl_perimetre_id") %>' runat="server" />
                                        <asp:HiddenField ID="hdfGlRayonId" Value='<%#Eval("gl_rayon_id") %>' runat="server" />
                                        <asp:Image ID="cadenas" runat="server" ImageUrl='~/style/1/images/pic_cadenas_on.gif' Visible='<%# bool.Parse(Eval("est_valide").ToString()) %>' />
                                        <asp:TextBox ID="txtObjectifValide" Style="text-align: right;" runat="server" Text='<%# this.AfficheMontant(Eval("objectif_valide")) %>'
                                            ValidationGroup="update" width="60%" Enabled='<%# !bool.Parse(Eval("est_valide").ToString()) %>' onchange="jsChangeIndice(this.id, 'txtObjectifValide')" /> 
                                            <%# this.SumObjectifs(Eval("objectif_valide")) %>
                                         <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="<%$ Resources:GL,gl_champs_obligatoirs %>"
                                        ControlToValidate="txtObjectifValide" ValidationGroup="update" ValidationExpression="<%$ Resources:GL,gl_regex_montant %>" />
 
                                    </div>
                                </ItemTemplate>
                                <FooterTemplate>
                                 <%# this.AfficheMontant(this.TotalObjectif) %>
                                </FooterTemplate>
                            </asp:TemplateField>
Quand je retire l'appel au javascript de la propriété onchange ET le regularExpressionValidator, l'affichage est instantané.

Est ce que je m'y suis mal pris ?
Est ce qu'un regularExpressionValidator est un procédé a éviter ?
Dois je renoncer au javascript ?

J'avoue être un peu perdu la....

voici le javascript :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
function jsChangeIndice(id,inputName)
        {
              var prefix = id.replace (inputName, '');
 
              var valObj = document.getElementById(prefix+"txtObjectifValide");
 
              var valIndice = document.getElementById(prefix+"indice_temp");
 
              var valCA = document.getElementById(prefix+"Label1");
 
 
              var newCA = valCA.value.replace(/\s+/g,'');
              newCA = newCA.replace(/ /g, "");
 
              var newObj = valObj.value.replace(/\s+/g,'');
              newObj = newObj.replace(/ /g, "");
 
              var p=eval(newObj/newCA*100);
              valIndice.innerText=p.toFixed(1);
        }

Merci à tous pour votre attention.

Edit:
le calcul prend 100% d'un cœur de mon proc pour afficher le rendu.
Ca retombe a 3% une fois terminée.