2010-09-13 15 views
0

Existe-t-il une alternative à la substitution de la méthode de rendu de la page pour rendre les lignes gridview cliquables. Cela fonctionne très bien en mode d'affichage en grille unique, mais lorsqu'il est imbriqué, bien que le code passe à travers et semble correct, je n'obtiens pas l'index sélectionné tirant sur la vue de grille imbriquée.Alternative à la substitution de Render pour l'ajout de l'attribut ClientScript.GetPostBackEventReference dans les GridViews imbriqués

Edit: J'ai essayé la ligne suivante dans RowDataBound, mais ne sais pas pourquoi je ne reçois pas l'index sélectionné de tir

e.Row.Attributes["onclick"] = ClientScript.GetPostBackClientHyperlink(e.Row.Parent.Parent, "Select$" + e.Row.RowIndex); 

protected override void Render(HtmlTextWriter writer) 
{ 
    if (gdvServiceSchedule.Rows.Count > 0) 
    { 
     foreach (GridViewRow row in gdvServiceSchedule.Rows) 
     { 
      if (row.RowType == DataControlRowType.DataRow) 
      { 

        row.Attributes.Add("onclick", Page.ClientScript.GetPostBackEventReference(this.gdvServiceSchedule, "Select$" + row.DataItemIndex, true)); 
      } 
      if (row.RowState == DataControlRowState.Edit || row.RowState == (DataControlRowState.Edit | DataControlRowState.Alternate)) 
      { 
       GridView gv = (GridView)row.FindControl("gdvServiceScheduleVariants"); 
       if(gv.Rows.Count > 0) 
       { 
        foreach(GridViewRow row2 in gv.Rows) 
        { 
         if(row2.RowType ==DataControlRowType.DataRow) 

         { 
          row2.Attributes.Add("onclick", Page.ClientScript.GetPostBackEventReference(row.FindControl("gdvServiceScheduleVariants"), "Select$" + row2.DataItemIndex, true)); 
         } 
        } 
       } 

      } 
     } 
    } 
    base.Render(writer); 
} 

Répondre

0

utiliser le framework MVC ... mais sérieusement, pouvez-vous juste créer un autre de votre contrôle personnalisé à l'intérieur de la rangée au lieu d'un GridView?

+0

Il y a plusieurs façons de contourner le problème que je vois, l'un d'entre eux pourrait être un contrôle personnalisé, je veux juste connaître la solution au problème. :) – Stuart