2012-01-02 33 views
8

Tôi đã xem bài đăng này How to programmatically insert a row in a GridView? nhưng tôi không thể thêm nó vào hàng tôi đã thử trên RowDataBound và sự kiện DataBound nhưng cả hai đều không hoạt động ở đây là mã của tôi nếu ai đó có thể chỉ cho tôi cách để tự động thêm một hàng vào cuối của GridView không Footer đó sẽ là mát anyway đây là mã của tôi mà không làm việcasp.net tự động thêm GridViewRow

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

Trong trường hợp bạn muốn thêm hàng vào GridView? – Bibhu

+0

Tôi muốn thêm một hàng chèn ở phía dưới chứ không phải trên chân trang vì vậy tôi không nhớ sự kiện nào bạn sử dụng. Tôi cũng cần thêm nút vào cột đầu tiên – ONYX

+0

Tại sao bạn tránh sử dụng chân trang? –

Trả lời

9

Sử dụng sự kiện RowDataBound, thêm bất kỳ kiểm soát để một TableCell và TableCell tới GridViewRow. Cuối cùng, thêm GridViewRow vào GridView tại một chỉ mục được chỉ định:

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); 
} 

Đây có thể không chính xác như bạn cần nhưng nó sẽ cung cấp cho bạn một ý tưởng.

Các vấn đề liên quan