【问题标题】:How to display no records found message in auto generated telerik gridview from datatable?如何在数据表中自动生成的 Telerik gridview 中显示未找到记录消息?
【发布时间】:2016-04-02 00:14:39
【问题描述】:

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

这是我的代码,但 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添加aspx代码

标签: c# asp.net gridview datatable telerik-grid


【解决方案1】:

您需要将 NoMasterRecordsText 属性更改为 gridview 的 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; 

      }
}

【讨论】:

  • 查看更新的问题,但您的解决方案不起作用。网格消失
  • @Learning 您需要在网格视图的NeedDataSource 事件上绑定您的数据。 Here's the link for more information
  • 如果您在NeedDataSource 事件中将数据绑定到gridview,那么您将在gridview 中收到`No Records Found` 消息
  • 看到我对这个 asp.net 很陌生,所以你能用你所说的话更新你的 ans,但记得在我定义列的地方使用我的数据集
【解决方案2】:

Gridview ASPX Page Put EmptyDataText

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

【讨论】:

  • OP 要求 telerik-gridview 而不是 asp-gridview
  • 我已经说过我也想要我的专栏。这将显示我的专栏。请查看我的输出
猜你喜欢
  • 1970-01-01
  • 2020-08-10
  • 2013-04-30
  • 1970-01-01
  • 1970-01-01
  • 2018-03-10
  • 1970-01-01
  • 2012-12-17
  • 2011-08-13
相关资源
最近更新 更多