簡體   English   中英

如何在 GridView asp.net 中的列中顯示“未找到記錄”?

[英]How to show “No record found” with Columns in GridView asp.net?

當我將數據源綁定到 GridView 時,如果我的數據源中沒有記錄,則不會顯示任何內容。

如果我將數據設置為 GridView 中的 EmptyDataText 屬性,它將僅顯示該文本。

,但我想顯示我的數據源的一列,第一行必須在我的 GridView 中顯示“未找到記錄”。 我應該怎么辦?

當數據表為空時,創建一個新行並在將列跨度設置為單元格計數之后綁定。

        DataTable dtTable = GetData();

        if (dtTable.Rows.Count > 0)
        {
            gvDetails.DataSource = dtTable;
            gvDetails.DataBind();
        }
        else
        {
            dtTable.Rows.Add(dtTable.NewRow());
            gvDetails.DataSource = dtTable;
            gvDetails.DataBind();
            int TotalColumns = gvDetails.Rows[0].Cells.Count;
            gvDetails.Rows[0].Cells.Clear();
            gvDetails.Rows[0].Cells.Add(new TableCell());
            gvDetails.Rows[0].Cells[0].ColumnSpan = TotalColumns;
            gvDetails.Rows[0].Cells[0].Text = "No Record Found";
        }

您可以創建一個擴展方法,查看是否沒有記錄,然后添加一行,顯示“未找到記錄”。 例如像:

你的grid.ValidateRecords();

或者您可以在數據源級別添加擴展方法。 例如像:

public static class Extensions
{
    public static DataSet HasData(this DataSet ds)
    {
        if (ds == null || ds.Tables.Count < 1 || ds.Tables[0].Rows.Count < 1)//add more validation, if dataset is not null?
        {
            DataTable dt = new DataTable("Table1");
            dt.Columns.Add("Col1");
            DataRow dr = dt.NewRow();
            dr["Col1"] = "No records found";
            dt.Rows.Add(dr);
            ds.Tables.Add(dt);
        }
        return ds;
    }

}

用法:

gridView1.DataSource = myDataSet.HasData();

Output:在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM