2016-05-23 44 views
0

我想填補一個GridView這樣的:GridView.DataBind()難度

private void BindGridView(DataTable dTable) 
{ 
    gridView.DataSource = dTable; 
    gridView.DataBind(); 
} 

在同一個cs文件,我只用gridView.DataBind();,和它的作品。 我想知道DataBind()方法是如何引用數據源的?

+0

你能更具體?一旦你設置了數據源,你不需要重新設置它,所以如果你想重新綁定網格,你可以調用'DataBind'。網格保留對原始源的引用, –

回答

1

你在哪裏調用僅DataBind方法實際上沒有做,因爲網格視圖中已經有DataSource任何區別,當你調用這個函數再次與現有的數據源

綁定它時,你甚至稱這條線的地方一旦在頁面

gridView.DataSource = dTable; 

它指定數據源的網格視圖和DataBind方法的任何後續調用將網格結合具有相同已經加載的數據。

+0

如果'gridView.DataSource = null'會怎麼樣? – Divyesh

+0

如果你只寫了這行'gridView.DataSource = null',它將不會有任何影響,但是如果你在這行之後調用'DataBind',它將會重置網格並且會因爲沒有數據而將其清空。 –

+0

好的,謝謝你的迴應。 – Divyesh

0

DataBind僅渲染已經加載到對象中的數據源。您可以在aspx中執行其他綁定,例如<span><%#MyClass.RenderSomething()%></span>,但除非您指示綁定(即您的cs中的page.DataBind();),否則不會發生任何事情。

您可以在您的代碼的一個部分中定義您的DataSource並將其綁定到另一個部分,因爲您將控件的源定義爲控件(您的GridView)以及DataBind最終調用的時間是全部處理到輸出和事件如RowCreated被解僱。

1

DataBind()方法用於將Source綁定到服務器控件。

DataBind()方法強制gridview與特定的數據源綁定。 由於您已經引用了您的DataSource,並且當您僅使用DataBind()時,它將默認採用先前的DataSource,因爲它在內存中。

但是,大多數控件自動執行綁定。因此,你不需要明確地使用這個方法。

我希望這是你想知道的。

0

私人無效bindGrid(數據表dTable) { 嘗試 {

  gvSmokingStatus.DataSource = dTable; 
      gvSmokingStatus.DataBind();    
    } 
    catch (Exception ex) 
    { 
     throw ex;`enter code here` 
    } 
}