2010-06-23 8 views
3

J'ai un problème avec la valeur du champ template; Gridview est dans ContentPlaceHolder1;Obtenir la valeur de TemplateFields dans Gridview

J'essaie d'obtenir la valeur dans l'événement GridView1_RowCreated

int RowIndex = GridView1.Rows.Count - 1; 
GridView1.Rows[RowIndex].Cells[0].Text = " " + AltKatLinkler; 

Mais ce code me renvoie null ou vide.

Il ya ma colonne, l'index de la colonne est 0. Remarque: Je remplis GridView en utilisant SqlDataSource. Il n'y a pas de problème, je peux voir le contenu de la ligne dans le navigateur, mais je ne peux pas accéder à partir de codebehind.

<asp:templatefield headertext="Haberler" sortexpression="KategoriID" xmlns:asp="#unknown"> 
    <ItemTemplate> 
     < a href='<%# "KategoriGoster.aspx?KategoriID=" + Eval("KategoriID")%>'> 
     <%# Eval("KategoriAd")%> 
     <%# Eval("Açıklama")%> 
    </ItemTemplate> 
</asp:TemplateField> 
+0

pense que vous devriez essayer RowDataBound – deostroll

+0

Essayer en ce moment. –

+0

Son toujours renvoyer null. –

Répondre

2

voir une autre façon de le faire

<asp:templatefield headertext="Haberler" sortexpression="KategoriID" xmlns:asp="#unknown"> 
    <ItemTemplate> 
     < a href='<%# "KategoriGoster.aspx?KategoriID=" + Eval("KategoriID")%>'> 
     <asp:Label ID="lbKategori" runat="server" Text='<%# Eval("KategoriAd").ToString() %>'></asp:Label> 
     <asp:Label ID="lbAçıklama" runat="server" Text='<%# Eval("Açıklama").ToString() %>'></asp:Label> 
    </ItemTemplate> 
</asp:TemplateField> 

Codebehind

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 

      var lbKategori = e.Row.FindControl("lbKategori") as Label; 
      var lbAçıklama = e.Row.FindControl("lbAçıklama") as Label; 
     } 
    } 
+0

Cela fonctionne merci Saar :) –

+0

vous êtes les bienvenus. – Saar

Questions connexes