フッターからデータを挿入するためのグリッドビューにデータがない場合にフッターを表示する方法。
mayur
質問する
15852 次
3 に答える
3
これを行う最も簡単な方法は、長さ 1 の配列をバインドすることです。これがダミー行であることを識別するために、任意のものを入れることができます。GridViews RowDataBound メソッドで、データ項目がダミー行であるかどうかを確認します (データを確認する前に、最初に RowType が DataRow であることを確認してください)。ダミー行の場合は、行の可視性を false に設定します。フッターとヘッダーは、データなしで表示されるはずです。
GridView で ShowFooter プロパティを true に設定してください。
例えば。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostback)
{
myGrid.DataSource = new object[] {null};
myGrid.DataBind();
}
}
protected void myGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.DataItem == null)
{
e.Row.Visible = false;
}
}
}
于 2009-04-27T11:35:52.983 に答える
2
ここに私が作った簡単なものがあります:
/// <summary>
/// Ensures that the grid view will contain a footer even if no data exists.
/// </summary>
/// <typeparam name="T">Where t is equal to the type of data in the gridview.</typeparam>
/// <param name="gridView">The grid view who's footer must persist.</param>
public static void EnsureGridViewFooter<T>(GridView gridView) where T: new()
{
if (gridView == null)
throw new ArgumentNullException("gridView");
if (gridView.DataSource != null && gridView.DataSource is IEnumerable<T> && (gridView.DataSource as IEnumerable<T>).Count() > 0)
return;
// If nothing has been assigned to the grid or it generated no rows we are going to add an empty one.
var emptySource = new List<T>();
var blankItem = new T();
emptySource.Add(blankItem);
gridView.DataSource = emptySource;
// On databinding make sure the empty row is set to invisible so it hides it from display.
gridView.RowDataBound += delegate(object sender, GridViewRowEventArgs e)
{
if (e.Row.DataItem == (object)blankItem)
e.Row.Visible = false;
};
}
それを呼び出すには、次を使用できます。
MyGridView.DataSource = data;
EnsureGridViewFooter<MyDataType>(MyGridView);
MyGridView.DataBind();
お役に立てれば。乾杯!
于 2013-10-17T20:10:29.073 に答える
0
GridView に空のデータがある場合にフッターを表示する簡単な方法を次に示します。
于 2011-09-12T06:32:00.077 に答える