GridView Satırındaki Alanlara nasıl erişirim?

Asp.net'de boş bir form oluşturarak üstüne bir GridView nesnesi eklediniz. GridView nesneleri Data sekmesinde yer almaktadır.  Aşağıdaki gibi bir tasarımı Asp.net Web Formu üzerinde yaptınız. Burada kolon olarak dersID, DERSADI, KREDI ve SAAT alanları kullanan bir tablomuz olduğunu düşünelim. Form üzerine bir SqlDataSource nesnesi de sürükleyip bırakarak veritabanı bağlantısını kuruyoruz. GridView nesnemizi de bu SqlDataSource nesnesine bağlıyoruz. Asp.net GridView kullanımı hakkında detaylı makaleyi aşağıdaki linkten okuyabilirsiniz.

Asp.net ile GridView Kullanımı




Alanların yanına bir de Ekle butonu ilave ettik. Aspx dosyamızın kaynak kodları aşağıdaki gibidir.

<asp:GridView ID="GridSepet" runat="server" AutoGenerateColumns="False" DataKeyNames="dersID" DataSourceID="SqlDataSource1" OnRowDeleting="GridSepet_RowDeleting" OnRowCommand="GridSepet_RowCommand" OnSelectedIndexChanged="GridSepet_SelectedIndexChanged">
                <Columns>
                    <asp:BoundField DataField="dersID" HeaderText="dersID" InsertVisible="False" ReadOnly="True" SortExpression="dersID" />
                    <asp:BoundField DataField="DERSADI" HeaderText="DERSADI" SortExpression="DERSADI" />
                    <asp:BoundField DataField="KREDI" HeaderText="KREDI" SortExpression="KREDI" />
                    <asp:BoundField DataField="SAAT" HeaderText="SAAT" SortExpression="SAAT" />
                    
                  
  <asp:buttonfield  runat="server" CommandName="Ekle" Text="Ekle" ButtonType="Button" />
                        

                </Columns>
            </asp:GridView>


Yukarıda button nesnesinin kodlarını görmektesiniz. GridView üzerinde birden fazla button olduğu zaman hangisinin tıklandığını anlamak için GridView'in RowCommand olayına gidiyoruz. Bunu GridView nesnesinin üzerine bir defa tıkladıktan sonra Events(Olaylar) bölümünde görebilirsiniz.

  protected void GridSepet_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Ekle")
            {

                int index = Convert.ToInt32(e.CommandArgument);
                GridViewRow row = GridSepet.Rows[index];

                int dersID = int.Parse(row.Cells[0].Text);
                string dersadi = row.Cells[1].Text;
                int kredi = int.Parse(row.Cells[2].Text);


                //Burada bir Listeye veya kendi oluşturduğunuz class içine ekleme yapabilirsiniz.
            
            }

        }


Yukarıdaki kod ile GridView üzerindeki satırın indeksine ve alan değerlerine ulaşıyoruz

Mutlu kodlamalar,
Oğuzhan TAŞ
Nisan 2018
Bookmark and Share