[英]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.