如何在数据表自动生成的 telerik gridview 中显示未找到记录消息?

How to display no records found message in auto generated telerik gridview from datatable?

我正在使用 dataset 动态创建 GridView 但是当我的 GridView 中没有记录时出现问题所以在这种情况下我想显示我的 GridView所有带有 No Records Found.

的列

这是我的代码,但 GridView 不可见:

 var table = new DataTable();
 table .Columns.Add("Source");
 table .Columns.Add("Destination");
 table .Columns.Add("Date");

If()
{
  //All my logics where i am generating value for this "Source,Destination,Date" Column.
  foreach (var item in data)
  {
     table.Rows.Add(Source,Destination,Date);
  }
  //Binding to Gridview
 GridView1.DataSource = dt;
 GridView1.DataBind();
}
else
{
   //No Records so display gridview with "No records" along with columns.
      GridView1.DataSource = dt; //Here i will not be having any data for this 3 columns Source,Destination,Date
      GridView1.DataBind();//But My gridview is not visible
}

Aspx:

<telerik:RadGrid ID="GridView1" runat="server">
                            <MasterTableView AutoGenerateColumns="true" NoMasterRecordsText="No Records Found">
                                <Columns>
                                </Columns>
                            </MasterTableView>
                        </telerik:RadGrid>

预期输出:

对于 gridview,您需要将 NoMasterRecordsText 属性 更改为 MasterTableView

ASPX:

<MasterTableView NoMasterRecordsText="No Records Found" >

C#:

protected void Page_Load(object sender, EventArgs e)
{
   GridView1.MasterTableView.NoMasterRecordsText = "No Records Found";     
}

编辑:使用 OnNeedDataSource

将数据绑定到 GridView
<telerik:RadGrid ID="GridView1" runat="server" OnNeedDataSource="GridView1_NeedDataSource">
    <MasterTableView AutoGenerateColumns="true" NoMasterRecordsText="No Records Found">
           <Columns>
           </Columns>
    </MasterTableView>
</telerik:RadGrid>

在你后面的代码中

// GridView1_NeedDataSource
protected void GridView1_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
    BindGridViewData();
}

//Bind Grid View 
private void BindGridViewData()
{
 var table = new DataTable();
         table .Columns.Add("Source");
         table .Columns.Add("Destination");
         table .Columns.Add("Date");

       if()
       {

         foreach (var item in data)
         {
            table.Rows.Add(Source,Destination,Date);
         }
         //Binding to Gridview
         GridView1.DataSource = dt;

      }
      else
      {

          GridView1.DataSource = dt; 

      }
}

Gridview ASPX 页面放置 EmptyDataText

<asp:GridView ID="GvZone" runat="server" AutoGenerateColumns="False" 
    EmptyDataText="No Records Found !"  >
 </asp:GridView>