Asp.net - user control simple de graphique de répartition

Soyez le premier à donner votre avis sur cette source.

Vue 6 917 fois - Téléchargée 364 fois

Description

Il est souvent pratique dans des projets internes de faire des statistiques sur des réponses (par exemple dans le cadre d'un sondage), en gros savoir combien de personne a choisi telle réponse.
Mais il est encore mieu de pouvoir faire un petit graphique qui donne une idée générale très rapidement (un petit histogramme simple).
Je vous fourni donc un petit exemple simple sous forme de User Control avec 5 réponses que vous pouvez adapter à loisir dans vos propres projets.

Source / Exemple :


' Code source du fichier ASCX 

<%@ Control Language="vb" AutoEventWireup="false" Codebehind="GraphRepartition.ascx.vb" Inherits="MonProjet.GraphRepartition" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
<TABLE id="GraphRepartition" height="30" cellSpacing="1" cellPadding="1" width="50" border="0" runat="server">
 <TR>
  <TD vAlign="bottom" align="middle" width="10" height="30"><asp:image id="ImageVal5" runat="server" Width="10" ImageUrl="/MonProjet/images/BaseGraph5.gif"></asp:image></TD>
  <TD vAlign="bottom" align="middle" width="10" height="30"><asp:image id="ImageVal4" runat="server" Width="10" ImageUrl="/MonProjet/images/BaseGraph4.gif"></asp:image></TD>
  <TD vAlign="bottom" align="middle" width="10" height="30"><asp:image id="ImageVal3" runat="server" Width="10" ImageUrl="/MonProjet/images/BaseGraph3.gif"></asp:image></TD>
  <TD vAlign="bottom" align="middle" width="10" height="30"><asp:image id="ImageVal2" runat="server" Width="10" ImageUrl="/MonProjet/images/BaseGraph2.gif"></asp:image></TD>
  <TD vAlign="bottom" align="middle" width="10" height="30"><asp:image id="ImageVal1" runat="server" Width="10" ImageUrl="/MonProjet/images/BaseGraph1.gif"></asp:image></TD>
 </TR>
</TABLE>

' ------------------------------------------------
' Code Source ASCX.VB

Public MustInherit Class GraphRepartition
    Inherits System.Web.UI.UserControl
    Protected WithEvents ImageVal5 As System.Web.UI.WebControls.Image
    Protected WithEvents ImageVal3 As System.Web.UI.WebControls.Image
    Protected WithEvents ImageVal2 As System.Web.UI.WebControls.Image
    Protected WithEvents ImageVal1 As System.Web.UI.WebControls.Image
    Protected WithEvents ImageVal4 As System.Web.UI.WebControls.Image

    Private _HauteurMax As Integer = 50
    Private _val5 As Integer = 0
    Private _val4 As Integer = 0
    Private _val3 As Integer = 0
    Private _val2 As Integer = 0
    Private _val1 As Integer = 0
    Private _NbReponses As Integer = 1

#Region "Liste des Propriétées Publiques"
    Public Property HauteurMax() As String
        Get
            Return _HauteurMax
        End Get
        Set(ByVal Value As String)
            _HauteurMax = Value
        End Set
    End Property
    Public Property Val5() As String
        Get
            Return _val5
        End Get
        Set(ByVal Value As String)
            _val5 = Value
        End Set
    End Property
    Public Property Val4() As String
        Get
            Return _val4
        End Get
        Set(ByVal Value As String)
            _val4 = Value
        End Set
    End Property
    Public Property Val3() As String
        Get
            Return _val3
        End Get
        Set(ByVal Value As String)
            _val3 = Value
        End Set
    End Property
    Public Property Val2() As String
        Get
            Return _val2
        End Get
        Set(ByVal Value As String)
            _val2 = Value
        End Set
    End Property
    Public Property Val1() As String
        Get
            Return _val1
        End Get
        Set(ByVal Value As String)
            _val1 = Value
        End Set
    End Property
    Public Property NbReponses() As String
        Get
            Return _NbReponses
        End Get
        Set(ByVal Value As String)
            If Value <> 0 Then
                _NbReponses = Value
            End If
        End Set
    End Property
#End Region

#Region " Code généré par le Concepteur Web Form "

    'Cet appel est requis par le Concepteur Web Form.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

    End Sub

    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
        'CODEGEN : cet appel de méthode est requis par le Concepteur Web Form
        'Ne le modifiez pas en utilisant l'éditeur de code.
        InitializeComponent()
    End Sub

#End Region

    ' -----------------------------------------------------
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        ImageVal5.Style.Add("height", Math.Round(((_val5 * _HauteurMax) / _NbReponses), 0))
        ImageVal4.Style.Add("height", Math.Round(((_val4 * _HauteurMax) / _NbReponses), 0))
        ImageVal3.Style.Add("height", Math.Round(((_val3 * _HauteurMax) / _NbReponses), 0))
        ImageVal2.Style.Add("height", Math.Round(((_val2 * _HauteurMax) / _NbReponses), 0))
        ImageVal1.Style.Add("height", Math.Round(((_val1 * _HauteurMax) / _NbReponses), 0))
    End Sub

    ' -----------------------------------------------------
End Class

' ------------------------------------------------
' Appel simple depuis un Datagrid 

<asp:TemplateColumn HeaderText="" ItemStyle-Width="50">
 <ItemTemplate>
  <uc1:GraphRepartition 
   id="GraphRepartition1" runat="server" 
   Val5='<%# CType(DataBinder.Eval(Container.DataItem,"NbReponse5"), integer)%>' 
   Val4='<%# Ctype(DataBinder.Eval(Container.DataItem,"NbReponse4"), integer)%>' 
   Val3='<%# Ctype(DataBinder.Eval(Container.DataItem,"NbReponse3"), integer)%>' 
   Val2='<%# Ctype(DataBinder.Eval(Container.DataItem,"NbReponse2"), integer)%>' 
   Val1='<%# Ctype(DataBinder.Eval(Container.DataItem,"NbReponse1"), integer)%>' 
   NbReponses= '<%# Ctype(DataBinder.Eval(Container.DataItem,"NbReponseTotal"), integer)%>' 
   HauteurMax='50'>
  </uc1:GraphRepartition>
 </asp:Image>
 </ItemTemplate>
</asp:TemplateColumn>

Conclusion :


Bon Coding

Romelard Fabrice (Alias F___)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_hamet
Messages postés
7
Date d'inscription
vendredi 14 février 2003
Statut
Membre
Dernière intervention
17 février 2005
-
Je viensde tester se cript c'estvraiment bien. J'aimerai savoir si sur ASP.net il y a d'autre moyen de faire des statistiques. mon mail est c'est hmbayefrequenceplus.fr
n'importe qui peux déposer des source sur votre site ?
cs_fabrice69
Messages postés
1766
Date d'inscription
jeudi 12 octobre 2000
Statut
Modérateur
Dernière intervention
11 décembre 2013
4 -
ASP.NET est un langage de programmation comme les autres pour le calcul de statistiques, donc oui il est possible de faire un composant de stats avec .net, il suffit de le coder pour ca.

Pour déposer une source, oui tout le monde peut en poser, en revanche si vraiment celui-ci est soit dangereux, soit inutile (très rare sur aspfr), il sera désactivé très rapidement.

F___

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.