如何显示“未找到记录”在 GridView asp.net 中使用列?

发布于 2024-11-04 04:38:56 字数 170 浏览 0 评论 0原文

当我将数据源绑定到GridView时,如果我的数据源中没有记录,它将不会显示任何内容。

如果我将数据设置为 GridView 中的 EmptyDataText 属性,它将仅显示该文本。

,但我想显示我的数据源的一列,并且第一行必须在我的 GridView 中显示“未找到记录”。我应该怎么办?

When I bind data source to GridView, if it has no record in my data source, it will not display anything.

If I set the data to EmptyDataText property in GridView, it will show only that text.

,But I want to show a Column of my data source and the first row must display "No record found" in my GridView. What should I do?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我不是你的备胎 2024-11-11 04:38:56

当数据表为空时,创建一个新行,然后绑定,将列跨度设置为单元格计数。

        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";
        }

When a datatable is empty, create a new row and and bind after that set columspan to cell count.

        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";
        }
日记撕了你也走了 2024-11-11 04:38:56

您可以创建一个扩展方法,该方法将查看是否没有记录,然后添加一行,表示“未找到记录”。例如:

您的 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();

输出:
在此处输入图像描述

You can create an extension method, that would see if no records are there, then add a row, that would say "no records found". For instance like:

your grid.ValidateRecords();

or you can add the extension method at the data source level. For instance like:

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;
    }

}

Usage:

gridView1.DataSource = myDataSet.HasData();

Output:
enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文