Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

Gridview Button Column Sorunu

Konu, 'C#' kısmında Ramazan KURU tarafından paylaşıldı.

  1. Ramazan KURU

    Ramazan KURU Yeni Üye

    Kayıt:
    11 Mayıs 2018
    Mesajlar:
    2
    Beğenilen Mesajlar:
    0
    Şehir:
    Kütahya
    Merhaba Arkadaşlar,

    Bir uygulamamda Gridview içerisine her satıra buton ekleyip, butona ilgili satıra ait bir takım işlemler yaptırmak istiyorum.

    DataGridViewButtonColumn dgvBtn = new DataGridViewButtonColumn();
    dgvBtn.HeaderText = "Tahsilat";
    dgvBtn.Text = "Kira Al";
    dgvBtn.UseColumnTextForButtonValue = true;
    dgvBtn.DefaultCellStyle.BackColor = Color.Maroon;
    dgvBtn.DefaultCellStyle.SelectionBackColor = Color.Maroon;
    //dgvBtn.DisplayIndex = 0;
    dgvBtn.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
    dgvBtn.FlatStyle = FlatStyle.Standard;
    dgwBugunKira.Columns.Add(dgvBtn);

    şeklinde butonu ekliyorum, bir debug içinde herhangi bir satırdaki butonu tıklayıp işlemleri yaptıktan sonra ikinci bir satırdaki butona tıklayamıyorum.

    Bu sorunu nasıl çözebilirim acaba? Yardımcı olursanız memnun olurum.
     
  2. sedirAğacı

    sedirAğacı Daimi Üye

    Kayıt:
    2 Mart 2016
    Mesajlar:
    903
    Beğenilen Mesajlar:
    237
    Meslek:
    Bilgisayar programcısı.
    Şehir:
    Aydın
    Çok fazla gridview lere aşina değilim ancak hatırladığımı yazayım.

    Butonu dinamik olarak eklediğin için, her tıklamada, işlemlerin bittikten sonra, gridview deki tüm butonları yeniden yaratman gerekiyordur.

    Ama .aspx sayfaya TemplateField olarak buton koyarsan, dinamik olarak her seferinde yeniden buton yaratman gerekmez.

    Bir örnek buldum, ilgili satırlarını paylaşayım.

    Kod:
    <asp:GridView ID="grdTbl" ... OnRowCommand="grdTbl_RowCommand">
    <Columns>
                                        <asp:TemplateField>
                                            <ItemTemplate>
                                                <div>
                                                    <asp:Button ID="btGuncelle" runat="server" Text="güncelle" CssClass="btUpdate"
                                                        CommandName="updateRow" CommandArgument='<%# Eval("key1") %>'  />
                                                </div>
                                               ...
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                    </Columns>
                                </asp:GridView>
    
    .cs sayfada
            protected void grdTbl_RowCommand(object sender, GridViewCommandEventArgs e)
            {
                    string mKey1 = e.CommandArgument.ToString();   // parametre
                    if (e.CommandName == "updateRow")
                    {
                                   ...
                                   
                    }
            }