2012-01-17 9 views
1

RowDataBoundイベントで現在バインドされている行に応じて、コードを動的に追加します。私は追加された行が現在の境界線の同じ状態(代替または通常)になることを可能にしますか?グリッドビューは、同じRowState(代替または通常)を持つRowDataBoundで動的に行を追加します。

私はこれのようなことをしていますが、私が欲しいものに従わないのです。私は追加された行が動的に現在の行と同じになることを期待しています。そうではありません。

protected void gv_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if(e.Row.RowType == DataControlRowType.DataRow) 
    { 
     GVData data = e.Row.DataItem as GVData; // not original object just for brevity 
     if(data.AddHiddenRow) 
     { 
      // the row state here should be the same as the current 
      GridViewRow tr = new GridViewRow(e.Row.RowIndex +1, e.Row.RowIndex + 1, DataControlRowType.DataRow, e.Row.RowState); 
      TableCell newTableCell = new TableCell(); 
      newTableCell.Style.Add("display", "none"); 
      tr.Cells.Add(newTableCell); 

      ((Table)e.Row.Parent).Rows.Add(tr); 
     } 
    } 
} 
+0

だから何が違うのですか?それは間違った場所にありますか?それは現れていますか? –

+0

いいえ、それは正しい場所にありますが、見えるように、追加された行は非表示の行です。グリッドが交互の行を適用すると、非表示の行にも適用されます。追加された行 –

答えて

2

[OK]を問題は、GridViewコントロールが表示を認識しないdoesntのことです。この行は非表示になりますという意味としてnoneので、その交互スタイルの一部としてそれをカウントします。この例では、自分でスタイルを実装し、それをグリッドビューから削除する必要があります。

私はまもなく準例を追加します。

+1

+1ですが、例を追加するのを忘れてしまいました。 :-) –

関連する問題