2012-01-02 7 views
8

Bu yazıya bir göz attım How to programmatically insert a row in a GridView? ama bunu RowDataBound ve DataBound olayında denedim bir satır eklemek için alamıyorum ama ikisi de burada çalışmıyor benim kodum birisi dinamik serin olurdu GridView değil Altbilgi sonuna bir satır eklemek için bana nasıl gösterebilirim eğer zaten burada, RowDataBound olayı kullanarakasp.net dinamik olarak GridViewRow ekleyin

protected void CustomGridView_DataBound(object sender, EventArgs e) 
{ 
    int count = ((GridView)sender).Rows.Count; 
    GridViewRow row = new GridViewRow(count+1, -1, DataControlRowType.DataRow, DataControlRowState.Insert); 
    //lblCount.Text = count.ToString(); 
    // count is correct 
    // row.Cells[0].Controls.Add(new Button { Text="Insert" }); 
    // Error Here adding Button 
    Table table = (Table)((GridView)sender).Rows[0].Parent; 
    table.Rows.Add(row); 
    // table doesn't add row   
} 
+0

Hangi durumda ızgara görünümüne bir satır eklemek istersiniz? – Bibhu

+0

Altbilgide değil altta bir ekleme satırı eklemek istiyorum, bu yüzden hangi olayı kullandığınızı umursamıyorum. Ayrıca ilk sütuna bir düğme eklemem gerekiyor – ONYX

+0

Altbilgiyi neden kullanmaktan kaçıyorsunuz? –

cevap

9

işe bir TableCell herhangi Kontrolü eklemez benim kodudur ve GridViewRow için TableCell. Nihayet bir Belirtilen dizindeki GridView GridViewRow ekleyin:

protected void gv_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    GridViewRow row = new GridViewRow(e.Row.RowIndex+1, -1, DataControlRowType.DataRow, DataControlRowState.Insert); 
    TableCell cell = new TableCell(); 
    cell.ColumnSpan = some_span; 
    cell.HorizontalAlign = HorizontalAlign.Left; 

    Control c = new Control(); // some control 
    cell.Controls.Add(c); 
    row.Cells.Add(cell); 

    ((GridView)sender).Controls[0].Controls.AddAt(some_index, row); 
} 

Bu tam ihtiyacınız ama size bir fikir verecektir nasıl olmayabilir.