2011-08-26 58 views
0
If dt_grid.Rows.Count > 0 Then 
     dt_grid.DataSource = dt_grid 
Else 
     MessageBox.Show("Not Found Data") 
End If 

我知道如果在gridview.datasource中獲得數據表格,永遠不會寫gridview.Databind.But我發現我的朋友編碼。他只寫gridview.datasource而不寫入gridview.dataBind。所以他的編碼不是錯誤的。爲什麼?不需要dataBind?是否需要在gridview中進行數據綁定?

+0

請在您的問題中添加一些代碼。正如你寫的,你的問題很難理解 – SwissGuy

+0

當然! @ZarNge。閱讀dataBinding文章 - http://support.microsoft.com/kb/307860 – adatapost

+0

@Jon:非常感謝 – ZarNge

回答

0

你確定你的朋友沒有使用DataSourceID屬性嗎?

下面是從MSDN的差:

當DataSourceID屬性設置(而不是數據源屬性),所述數據綁定控件自動綁定到在運行時數據源控件。

請看看this articlethis one.

希望它幫助。

我花了一些時間來做一個小例子來證明你需要在一個普通的asp.net gridview上調用DataBind()來渲染它的數據。

如果你的朋友沒有調用它,我猜測他正在將網格綁定到.aspx代碼中的數據源(甚至是ObjectDataSource上的SQLDatasource),並且他正在修改代碼中的該數據源。

請看看下面的例子:

Default.aspx頁:

<%@ Page Title="Home Page" Language="C#" AutoEventWireup="true" 
    CodeBehind="Default.aspx.cs" Inherits="GridViewDemo._Default" %> 

<form id="form1" runat="server"> 
<asp:gridview id="GridView1" runat="server"> 
    <Columns> 
     <asp:BoundField DataField="ID" /> 
     <asp:BoundField DataField="Name" /> 
    </Columns> 
</asp:gridview> 
</form> 

這個頁面的代碼隱藏:(這是在C#中,但我認爲這是有關VB作爲)

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace GridViewDemo 
{ 
    public partial class _Default : System.Web.UI.Page 
    { 
     public class Entity 
     { 
      public int ID { get; set; } 
      public string Name { get; set; } 
     } 

     protected void Page_Load(object sender, EventArgs e) 
     { 
      List<Entity> source = new List<Entity>() { new Entity() { ID = 1, Name = "First" }, new Entity() { ID = 2, Name = "Second" } }; 
      GridView1.DataSource = source; 
      GridView1.DataBind(); 
      // if you comment this line and run, the gridview is not rendered 
     } 


    } 
} 

讓我知道這是否回答了您的問題。

+0

我的朋友沒有使用DataSourceId屬性。你引用DatasourceID是sqlDatasourceID什麼的? – ZarNge

+0

請看我更新的答案 – noir

相關問題