DataGrid がページングを使用する場合、最後のページが「フル ページ」にならない可能性があるため、DataGrid のレイアウトに問題が発生する可能性があり、残りの行の幅が広すぎて、DataGrid 全体が見苦しくなります。
解決策はおそらく次の 3 つの場所から検討できます。
1. DataSource に新しいデータ行を入力します。
2. DataGrid の新しい空白のコントロール行を入力します。
3. JavaScript を使用して、Web ページの新しい HTML コントロール行を入力します。
2 番目のメソッドを使用し、データグリッドのプリレンダー イベントの応答メソッドで、フッター行の上の空白行を埋めます。コードは次のとおりです。
protected virtual void SpiderSurfGrid_PreRender(object sender, System.EventArgs e)
{
DataGridItem dgi;
System.Web.UI.WebControls.TableCell テーブルセル;
System.Web.UI.WebControls.TableRow テーブル行;
DataGrid グリッド = (DataGrid として送信者);
if(grid.Controls.Count == 0) 戻り値;
System.Web.UI.WebControls.Table table = (grid.Controls[0] as System.Web.UI.WebControls.Table);
tablerow = (System.Web.UI.WebControls.TableRow)(table.Controls[1]);
for(int j=this.PageSize+4-table.Controls.Count;j>0;j--)
{
dgi = 新しい DataGridItem(0,0,ListItemType.Item);
for(int i=0;i<tablerow.Controls.Count;i++)
{
tablecell = 新しい System.Web.UI.WebControls.TableCell();
dgi.Cells.Add(テーブルセル);
}
table.Controls.AddAt(table.Controls.Count-2,dgi);
}
説明
: ここで考慮されるのは、ヘッダー/フッター/ページャーの行とその下のページャーを含むバインドされたデータグリッドです。
奇妙なのは、ここで cssstyle を追加できないことです。 dgi.cssstyle="dumpTableRowClass"; 成功したら、アドバイスをお願いします。
athossmth によるオリジナルです。転載する場合はその旨を明記してください。