2012-01-02 11 views
8

私はこの投稿を見てきましたHow to programmatically insert a row in a GridView?行を追加することができませんでした。私はRowDataBoundとDataBoundイベントで試しましたが、両方ともここで動作していません。誰かが動的にクールになるのGridViewないフッターの最後に行を追加する方法を私を見ることができれば、とにかくここでは、RowDataBoundイベントを使用してasp.net動的に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

どのような場合に、グリッドビューに行を追加したいですか? – Bibhu

+0

フッターにはない行の下に挿入行を追加したいので、どのイベントを使用しても構いません。私も最初の列にボタンを追加する必要があります – ONYX

+0

なぜフッターを使用しないのですか? –

答えて

9

を作業テーブルセルに任意のコントロールを追加していない私のコードです、TableCellをGridViewRowに割り当てます。最後に指定されたインデックスにGridViewコントロールにGridViewRowを追加します。

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

これは、あなたがそれを必要とする正確にどのようにではないかもしれないが、それはあなたのアイデアを与える必要があります。

関連する問題