Extender gridview pour traitements lourds de listes

Soyez le premier à donner votre avis sur cette source.

Vue 10 065 fois - Téléchargée 524 fois

Description

Petit exemple sur MS Ajax Librairie et les Extenders.

Le problème : Un traitement lourd de validation sur chaque item d'une collection entrainait une latence trop importante pour l'utilisateur qui n'avait aucune idée de l'avancement de la page.

La solution : Traitement ligne par ligne avec un retour visuel coté client sur le statut de la ligne traitée.

En gros, j'utilise un service Web pour effectuer le traitement d'un item ceci via un extender sur le control GridView.

Source / Exemple :


<%@ Register Assembly="Wapiti.Web.UI.WebControls" Namespace="Wapiti.Web.UI.WebControls" TagPrefix="wpt" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Demo</title>
    <script type="text/javascript">
    onStartAnalyse = function(sender, args)
    {
        $get("statut").innerText = "Analyse en cours ...";
    };
    onEndAnalyse = function(sender, args)
    {
        $get("statut").innerText = "Analyse terminée";
    };
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
    <div>
    <wpt:GridWorkerExtender ID="GridWorkerExtender1" runat="server"
            TargetControlID="GridView1"
            OnClientStartAnalyse="onStartAnalyse"
            OnClientEndAnalyse="onEndAnalyse"
            ServicePath="GridWorker.asmx"
            ServiceMethode="Analyse" WorkingBgColor="Cyan" WorkingColor="Red"
         />
    <div id="statut">Hello !!!</div>
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" AllowPaging="true"
            DataSourceID="SqlDataSource1" PageSize="30">
        <Columns>
            <asp:BoundField DataField="cln1" HeaderText="Colonne 1" />
            <asp:BoundField DataField="cln2" HeaderText="Colonne 2" />
            <asp:BoundField DataField="cln3" HeaderText="Colonne 3" />
        </Columns>
            </asp:GridView>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:CNC_TEST %>" 
        SelectCommand="SELECT * FROM TEST"/>
    </div>
    </form>
</body>
</html>

Conclusion :


L'extender ne fonctionne que sur le GridView standard (ne devrait pas fonctionner avec des adapter comme Css Frendly)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

spikeyz
Messages postés
10
Date d'inscription
vendredi 17 octobre 2003
Statut
Membre
Dernière intervention
21 novembre 2008
-
Bonjour,
Peux-tu mettre la page default.aspx avec l'action sur le bouton de control car je n'arrive pas a utiliser l'extender.

Merci d'avance et bonne continuation.
cs_Yxion
Messages postés
219
Date d'inscription
jeudi 6 juillet 2006
Statut
Membre
Dernière intervention
7 septembre 2009
-
C'est fait... je croyais d'ailleurs avoir laissé la démo
spikeyz
Messages postés
10
Date d'inscription
vendredi 17 octobre 2003
Statut
Membre
Dernière intervention
21 novembre 2008
-
Nikel, Merci

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.