IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Redéfinition de la méthode Render et postback


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 31
    Par défaut Redéfinition de la méthode Render et postback
    Bonjour,

    Ma page est composée d'un Gridview inclus dans un updatePanel.

    J'ai fais en sorte que les lignes de ma gridview soit cliquable.

    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
        protected void GridView_Fill(object sender, GridViewRowEventArgs e) 
     
     
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                e.Row.Attributes["onmouseover"] = "this.style.cursor='hand';this.style.color='red';this.style.textDecoration='underline';";
                e.Row.Attributes["onmouseout"] = "this.style.color='black';this.style.textDecoration='none';";
     
                e.Row.Style["cursor"] = "hand";
     
                e.Row.Attributes["onclick"] = ClientScript.GetPostBackClientHyperlink(this.GridView1, "Select$" + e.Row.RowIndex, false);         
            }
     
     
     
     
        }

    Pour valider cet évènement je suis obliger de redéfinir la méthode render.


    Méthode render

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        protected override void Render(HtmlTextWriter writer)
        {
            for (int i = 0; i < this.GridView1.Rows.Count; i++)
            {
                Page.ClientScript.RegisterForEventValidation(this.GridView1.UniqueID, "Select$" + i);
            }
            base.Render(writer);
        }
    Tout fonctionne bien sauf que lorsque je clique sur une ligne de mon gridview il ne considère pas l'évènement comme un postback

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        protected void Page_Init(object sender, EventArgs e) 
        {
            if (!IsPostBack)
            {
                //création de la datatable
                init_DataTable();
            }
        }
    Il se fait donc que ma DataTable est reinitialisée.

    Comment éviter cela ?

    Merci d'avance

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 31
    Par défaut
    le problème est du a cause de cette ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    e.Row.Attributes["onclick"] = ClientScript.GetPostBackClientHyperlink(this.GridView1, "Select$" + e.Row.RowIndex, false);

  3. #3
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Peux tu nous montrer l'aspx dans lequel tu construis ta gridView ?

    Pourquoi veux-tu rendre l'intégralité de la ligne cliquable ? Un bouton en début ou en fin de ligne ne suffirait-il pas ?

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 31
    Par défaut
    Citation Envoyé par calagan99 Voir le message
    Peux tu nous montrer l'aspx dans lequel tu construis ta gridView ?

    Pourquoi veux-tu rendre l'intégralité de la ligne cliquable ? Un bouton en début ou en fin de ligne ne suffirait-il pas ?
    Non pas de bouton, je veux rendre toute la ligne cliquable


    Code de ma page

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
     
        <asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel1">
                <ProgressTemplate><img src="../App_Themes/Style/Img/Ajax/ajaxloader.gif" alt="Image progression" />Action en cours</ProgressTemplate>
        </asp:UpdateProgress>
     
        <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
     
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="GridView1" />
            </Triggers>
     
     
            <ContentTemplate>
     
     
     
                <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" ShowHeader="false" ShowFooter="false" OnRowEditing="GridView1_OnRowEditing" OnRowCommand="MoveElement" 
                    OnRowDataBound="GridView_Fill" OnRowUpdating="GridView1_RowUpdating" OnRowUpdated="GridView1_OnRowUpdated" OnRowCancelingEdit="GridView1_OnRowCancelingEdit" > 
     
                        <Columns>
     
                            <asp:BoundField DataField="libelle" ItemStyle-Width="400px" />
                            <asp:BoundField DataField="reference" ControlStyle-Width="100px"/>
     
                            <asp:ButtonField ButtonType="Button" CommandName="GridView_DELETE" Text="Supprimer" /> 
                            <asp:ButtonField ButtonType="Button"  CommandName="GridView_Move_UP" Text="Monter" />
                            <asp:ButtonField ButtonType="Button" CommandName="GridView_Move_DOWN" Text="Descendre" />   
     
                            <asp:CommandField DeleteText="Editer" ShowEditButton="true"/>            
     
                         </Columns>
     
                         <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
     
                </asp:GridView>
     
     
            </ContentTemplate>
     
        </asp:UpdatePanel>

  5. #5
    Membre confirmé
    Profil pro
    azeazeae
    Inscrit en
    Septembre 2002
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : azeazeae

    Informations forums :
    Inscription : Septembre 2002
    Messages : 114
    Par défaut
    mettre le init_DataTable(); dans le SelectedIndexChanged de ton gridview ne fonctionnerait pas?

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 31
    Par défaut
    Citation Envoyé par ixpe Voir le message
    mettre le init_DataTable(); dans le SelectedIndexChanged de ton gridview ne fonctionnerait pas?
    init_DataTable(); permet de définir la structure de la datatable et la stock en session.

    Ce n'est pas le bon endroit ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Zend_Barcode_Renderer_Image méthode render()
    Par freeseb74 dans le forum Autres composants
    Réponses: 0
    Dernier message: 01/08/2010, 23h39
  2. [XML] Redéfinition d'une méthode de minidom
    Par Rupella dans le forum Général Python
    Réponses: 3
    Dernier message: 23/09/2009, 15h43
  3. Redéfinition d'une méthode de QComboBox
    Par gassi64 dans le forum Qt
    Réponses: 8
    Dernier message: 16/07/2009, 13h41
  4. Réponses: 4
    Dernier message: 25/03/2009, 15h18
  5. Réponses: 4
    Dernier message: 05/09/2006, 09h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo