【问题标题】:Do need to databind in gridview?是否需要在 gridview 中进行数据绑定?
【发布时间】:2026-01-31 14:05:03
【问题描述】:
 If dt_grid.Rows.Count > 0 Then
        dt_grid.DataSource = dt_grid
 Else
        MessageBox.Show("Not Found Data")
 End If  

我知道如果在 gridview.datasource 中获取数据表,请编写 gridview.Databind。但我找到了我朋友的编码。他只写了gridview.datasource 中的get datatable,但没有写gridview.dataBind。因此,他的编码没有错误。为什么?不需要dataBind?

【问题讨论】:

  • 请在您的问题中添加一些代码。正如您所写,您的问题很难理解
  • 当然! @ZarNge。阅读 dataBinding 文章 - support.microsoft.com/kb/307860

标签: vb.net gridview data-binding


【解决方案1】:

您确定您的朋友没有使用 DataSourceID 属性吗?

这里是与 MSDN 的区别:

当设置 DataSourceID 属性(而不是 DataSource 属性)时,数据绑定控件会在运行时自动绑定到数据源控件。

请看this articlethis one.

希望对您有所帮助。

我花时间做了一个小例子来演示您需要在普通的 asp.net gridview 上调用 DataBind() 才能呈现其数据。

如果你的朋友没有调用这个,我猜他正在将网格绑定到 .aspx 代码中的数据源(到 SQLDatasource,甚至是 ObjectDataSource),并且他正在修改代码中的数据源。

请看下面的例子:

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
        }


    }
}

如果这回答了您的问题,请告诉我。

【讨论】:

  • 我的朋友没有使用 DataSourceId 属性。你指的是 DatasourceID 是 sqlDatasourceID 什么的??