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
中编写get datatable,但没有写gridview.dataBind。因此,他的编码不是错误。为什么?不需要dataBind?
答案 0 :(得分:0)
您确定您的朋友没有使用DataSourceID属性吗?
以下是与MSDN的区别:
设置DataSourceID属性(而不是DataSource属性)时,数据绑定控件会在运行时自动绑定到数据源控件。
希望它有所帮助。
我花时间做了一个小例子来证明你需要在普通的asp.net gridview上调用DataBind()来呈现它的数据。
如果你的朋友没有调用它,我猜他是将网格绑定到.aspx代码中的数据源(到SQLDatasource,甚至是ObjectDataSource),并且他正在代码中修改该数据源。 / p>
请查看以下示例:
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
}
}
}
如果这回答了你的问题,请告诉我。