如何在空数据网格视图上显示自定义消息

问题描述 投票:0回答:3

在我的窗口表单中,我使用

datagridview
向用户显示类别详细信息,但我也想在表中没有找到记录时显示自定义消息,然后我想显示自定义消息,例如 “没有发现记录”。 此消息应该位于
datagrird
视图中,就像您熟悉
asp
一样,其中有空的
data template
以在
gridview
中显示自定义消息 这是在我的
datagridview

中显示数据的代码
public void getData()
        {
            try
            {
                con = new SqlConnection(str);
                con.Open();
                string getAll = "select (CatID) as [ID],CategoryName as [Category Name] from Category order By CategoryName";
                SqlCommand cmd = new SqlCommand(getAll, con);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataSet ds = new DataSet();
                da.Fill(ds, "Category");
                dataGridView1.DataSource = ds;
                dataGridView1.DataMember = ds.Tables[0].ToString();
                con.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

and i called this method on form load.
c# sql-server winforms datagridview
3个回答
2
投票

没有实现的方法可以做你想做的事。

检查后

if (ds.Rows.Count > 0) 

,无论哪种方式,您都必须在 DGV 前面放置一个自己的控件,例如标签 或者您完全可以在 DGV 上亲手绘制您的信息。

最简单的方法是提示 Message.Box 或在数据集中现在有行的情况下关闭 DGV,并显示另一个带有“未找到记录”消息的控件


1
投票

winforms datagridview

中没有等效属性

您可能会研究这个问题的解决方案。


0
投票

清除数据网格的所有现有列,添加单列名称“消息”并在新数据表中添加空白行,添加单列“消息”并添加一行包含自定义消息。

grid.AutoGenerateColumns = false;
grid.DataSource = null;
grid.Columns.Clear();

DataTable dt= new DataTable();
DataGridViewTextBoxColumn colMessage = new DataGridViewTextBoxColumn
{
    DataPropertyName = "Message",
    HeaderText = "Message",
    ReadOnly = true,
    MinimumWidth=150,
    AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
};
grid.Columns.Add(colMessage);

dt.Columns.Add("Message");
DataRow newRow = dt.NewRow();
newRow["Message"] = "No records found";
dt.Rows.Add(newRow);

BindingSource bs = new BindingSource
{
   DataSource = dt
};
grid.DataSource = bs;

在此输入图片描述

© www.soinside.com 2019 - 2024. All rights reserved.