在我的窗口表单中,我使用
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.
没有实现的方法可以做你想做的事。
检查后
if (ds.Rows.Count > 0)
,无论哪种方式,您都必须在 DGV 前面放置一个自己的控件,例如标签 或者您完全可以在 DGV 上亲手绘制您的信息。
最简单的方法是提示 Message.Box 或在数据集中现在有行的情况下关闭 DGV,并显示另一个带有“未找到记录”消息的控件
winforms datagridview
中没有等效属性
您可能会研究这个问题的解决方案。
清除数据网格的所有现有列,添加单列名称“消息”并在新数据表中添加空白行,添加单列“消息”并添加一行包含自定义消息。
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;