2015-12-28 23 views
1

我動態創建GridViewdataset,但當我的GridView中沒有記錄時出現問題,因此在這種情況下,我想用No Records Found顯示我的GridView所有列。如何從數據表中顯示自動生成的telerik 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> 

預期輸出:enter image description here

所以任何人可以幫助我嗎?

+0

編輯和添加'aspx'代碼'gridview' –

回答

2

您需要爲gridview的MasterTableView更改NoMasterRecordsText屬性。

ASPX:

<MasterTableView NoMasterRecordsText="No Records Found" > 

OR

C#:

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

編輯:將數據綁定到的GridView使用OnNeedDataSource

<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; 

     } 
} 
+0

看到更新的問題,但您的解決方案是行不通的。網格消失 –

+0

@學習您需要綁定網格視圖的「NeedDataSource」事件上的數據。 [這裏是更多信息的鏈接](http://docs.telerik.com/devtools/aspnet-ajax/controls/grid/data-binding/understanding-data-binding/server-side-binding/advanced-data-binding - (using-needdatasource-event)) –

+0

看到這個鏈接:http://stackoverflow.com/questions/5800097/how-to-show-no-record-found-with-columns-in-gridview-asp-net –

0

的GridView ASPX頁面代碼中把你張貼EmptyDataText

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

OP是要求'telerik-gridview'而不是'asp-gridview' –

+0

我已經說過我也想要我的列。這是顯示我的列。請參閱我的輸出 –

+0

對不起okkkk我的代碼是asp-gridview –

相關問題