需要在gridview中进行数据绑定吗?

时间:2011-08-26 07:57:11

标签: vb.net gridview data-binding

 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?

1 个答案:

答案 0 :(得分:0)

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

以下是与MSDN的区别:

  

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

请查看this articlethis one.

希望它有所帮助。

我花时间做了一个小例子来证明你需要在普通的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
        }


    }
}

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