burasibedava.com BURDA HERŞEY BEDAVA: Asp.net te Gridview in içindeki nesnelere erişmek

21 Haziran 2012 Perşembe

Asp.net te Gridview in içindeki nesnelere erişmek

Merhaba arkadaşlar bu makalede bir dönem beni bir hayli uğraştıran bir konuya deyinicem. Gridview içinde yer alan textbox veya label gibi nesnelere nasıl kontrol sağlıyacaz ondan bahsedeceğim.
 Sayfanızda yer alan bir datalist veya Gridview nesnesine .cs veya .vb gibi dosyanızdan erişmek istediğinizde hata alırsınız. Yani sayfada bulunan diğer elamanlar gibi erişemessiniz. Bunun için özel bir metod kullanacağız.

<asp:GridView ID="YAP_TEK_GRID" runat="server" AutoGenerateColumns="False"
DataSourceID="SqlDataSource1">

<Columns>
<asp:BoundField DataField="id" HeaderText="id" InsertVisible="False"
ReadOnly="True" SortExpression="id" />
<asp:TemplateField>
<ItemTemplate>
<asp:Labell ID="Label1" runat="server" Text="Label"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:CheckBoxField DataField="bransmi" HeaderText="bransmi"
SortExpression="bransmi" />
<asp:BoundField DataField="brans" HeaderText="brans" SortExpression="brans" />
</Columns>
</asp:GridView>

Burada bulunan label1 nesnesine .cs sayfasından ulaçamassınız ulaşmanızı sağlayan kod söyle:
(Label)YAP_TEK_GRID.Rows[0].FindControl("Label1")).Text Bu kod sayesinden ulaşabiliriz içindeler ne işe yarıyor açıklayalım.
"(Label)" yazan yer sayfada bulunan bir label nesnesine ulaşacağımızı belirtiyor.
"YAP_TEK_GRID" sayfada bulunan ve içindeki nesneye ulamak istediğimiz Gridview in adıdır.
"Rows[x]" ulaşmak istediğimiz label nesnesi gridview de hangi satırda bulunuyor onu belirtiyor.
"FindControl("Label1")).Text" label1 isimli kontrolun içindeki text anlamına gelmektedir.
Son olarak örnek verirsek
(Label)YAP_TEK_GRID.Rows[0].FindControl("Label1")).Text = "Köksal İyigün"; dersek o labelin text değeri "Köksal iyigün" olarak değişecektir.

Umarım faydalı olmuştur.
İyi çalışmalar
Köksal İyigün
koksal_iyigun@aspnedir.net

Hiç yorum yok:

Yorum Gönder