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:
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:
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:
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