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