2010-06-23 2 views
3

У меня проблема с получением значения поля шаблона; Gridview находится в ContentPlaceHolder1;Получить значение TemplateFields в Gridview

Я пытаюсь получить значение в GridView1_RowCreated случае

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

Но этот код возвращает меня нулевым или пустым.

Есть моя колонка, индекс столбца равен 0. Примечание: Я заполняю GridView с помощью SqlDataSource. Нет проблем, я могу видеть содержимое строки в браузере, но я не могу получить доступ из кода.

<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

думаю, вы должны попробовать RowDataBound – deostroll

+0

Попытка прямо сейчас. –

+0

Его по-прежнему отправляют обратно null. –

ответ

2

увидеть еще один способ сделать это

<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

Это работает спасибо Саар :) –

+0

добро пожаловать. – Saar

Смежные вопросы