- 締切済み
GridViewに行追加するには?
ObjectDataSourceをGridViewにバインドしてGridViewを表示しています。GridViewは1画面に20行固定で表示したいのですが、表示するデータが20行に満たない場合でも空白行を追加して、20行表示にしたい。空白行を追加するにはどうすればよろしいでしょうか? GridView1.Controls[0].Controls.AddAt(INDEX,GridViewRow)で追加できそうなのですが、GridViewRowの作成方法がわかりません。 よろしくおねがいします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- naganaga_001
- ベストアンサー率71% (172/242)
回答No.2
お世話になります。 > やり方としてはオブジェクトをArray等に入れて という事を想定していたのですが、 ObjectDataSource の 型になにを選択しているかによって できないかもしれないですね。すみません。 TableAdapter 等を ObjectDataSource の 型 として使用している場合、Fill 等のメソッドをラップするメソッドを 作ってやり、 20 行判定及び 20 行に満たない場合は空行オブジェクト追加 等はいかがでしょうか。
- naganaga_001
- ベストアンサー率71% (172/242)
回答No.1
お世話になります。 ObjectDataSource が 20 個に満たない場合は ObjectDataSource に空のオブジェクトを追加してやって 20 個表示するようにするのはだめなんでしょうか。
質問者
補足
回答ありがとうございます。 やり方としてはオブジェクトをArray等に入れて Arrayに空のオブジェクトを追加して、 ArrayをGridViewにDataBindするという方法でよろしいでしょうか。 で、バインドした時にGridViewを再表示して、 一瞬ちらついたりしないでしょうか?
補足
お世話になっております。 Fillメソッドのラップは考えつきませんでした。試してみます。 とりあえず下記の方法で成功しました。 下記を20行になるまでループさせました。 GridViewRow row1 = new GridViewRow(-1, -1, DataControlRowType.DataRow, DataControlRowState.Normal); TableCell cell1 = new TableCell(); TableCell cell2 = new TableCell(); TableCell cell3 = new TableCell(); TableCell cell4 = new TableCell(); TableCell cell5 = new TableCell(); cell1.Text = " "; cell2.Text = " "; cell3.Text = " "; cell4.Text = " "; cell5.Text = " "; row1.Cells.Add(cell1); row1.Cells.Add(cell2); row1.Cells.Add(cell3); row1.Cells.Add(cell4); row1.Cells.Add(cell5); GridView1.Controls[0].Controls.AddAt(j+1, row1);