GridView VS DataGrid

     才接触这些东西,找了本介绍VS2003的书,学着VS2005,然后一直参考着MSDN Library 。今天一不小心,进入死胡同。

     在数据组里面死都找不到一个叫DataGrid 的东西,只有一个长的比较类似的GridView 。恩,可能应该就是这个。这个时候自己还没有反应过来。拖入后,直接就配置数据源了。代码生成如下:

    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="AdminID"
            DataSourceID="AccessDataSource1" Height="137px" Width="179px" AllowPaging="True" AllowSorting="True">
            <Columns>
                <asp:BoundField DataField="AdminID" HeaderText="ID" ReadOnly="True" SortExpression="AdminID" />
                <asp:BoundField DataField="AdminLevel" HeaderText="Level" SortExpression="AdminLevel" />
            </Columns>
        </asp:GridView>
        <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/TEST.mdb"
            SelectCommand="SELECT [AdminID], [AdminLevel] FROM [Admin]"></asp:AccessDataSource>
   
    </div>
    </form>

想想,还是觉得应该有这个东西的。在数据呈现上离不开这个东西,至少现在我这么认为。然后尝试手工输入:

<asp:datagrid ID="datagrid1" runat="server">
        </asp:datagrid>

逻辑页:

Imports System.Data
Imports System.Web
Partial Class Default2
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Dim connstr As String
        Dim mycon As OleDb.OleDbConnection
        Dim mycmd As OleDb.OleDbDataAdapter
        Dim mysql As String

        Try
            connstr = "provider=microsoft.jet.oledb.4.0;data source=" + Server.MapPath(".") + "/App_Data/TEST.mdb"
            mycon = New OleDb.OleDbConnection(connstr)
            mysql = "SELECT [AdminID], [AdminLevel] FROM [Admin]"
            mycmd = New OleDb.OleDbDataAdapter(mysql, mycon)

            Dim mydataset As Data.DataSet
            mydataset = New Data.DataSet


            mycmd.Fill(mydataset, "Admin")

            datagrid1.DataSource = mydataset
            datagrid1.DataMember = "Admin"
            datagrid1.DataBind()

        Catch ex As Exception
            Response.Write("程序出错:<br>" + ex.Message)
        Finally
            mycon.Close()
        End Try

    End Sub
End Class

 

  后者在mycon.Close()时,还有个提示错误:变量“mycon”在赋值前使用,可能会在运行时导致空应用异常

吃晚饭会,肚子撑撑的,正好慢慢看点东西。

MSDN:

DataGridView 控件替换了 DataGrid 控件并添加了功能;但是也可选择保留 DataGrid 控件以备向后兼容和将来使用。

DataGrid 好象只有以编程方式向 DataGrid 添加表和列。

DataGridView 控件是替换 DataGrid 控件的新控件。DataGridView 控件提供了 DataGrid 控件中没有的许多基本功能和高级功能。此外,DataGridView 控件的结构使得它比 DataGrid 控件更容易扩展和自定义。

下表描述 DataGridView 控件中提供而 DataGrid 控件中未提供的几个主要功能。

DataGridView 控件功能  说明 
多种列类型
 与 DataGrid 控件相比,DataGridView 控件提供了更多的内置列类型。这些列类型能满足大多数常见方案的需要,而且比 DataGrid 控件中的列类型更容易扩展或替换。有关更多信息,请参见 Windows 窗体 DataGridView 控件中的列类型。
 
多种数据显示方式
 DataGrid 控件仅限于显示外部数据源的数据。而 DataGridView 控件可显示存储在控件中的未绑定数据、来自绑定数据源的数据或者同时显示绑定数据和未绑定数据。也可以在 DataGridView 控件中实现虚拟模式以提供自定义数据管理。有关更多信息,请参见 Windows 窗体 DataGridView 控件中的数据显示模式。
 
用于自定义数据显示的多种方式
 DataGridView 控件提供了许多属性和事件,您可以使用它们指定数据的格式设置方式和显示方式。例如,您可以根据单元格、行和列中包含的数据更改其外观,或者将一种数据类型的数据替换为另一种类型的等效数据。有关更多信息,请参见 Windows 窗体 DataGridView 控件中的数据格式设置。
 
用于更改单元格、行、列、标头外观和行为的多个选项
 DataGridView 控件使您能够以多种方式使用各个网格组件。例如,您可以冻结行和列以阻止其滚动;隐藏行、列和标头;更改调整行、列和标头大小的方式;更改用户进行选择的方式;以及为各个单元格、行和列提供工具提示和快捷菜单。
 

保留了 DataGrid 控件,以备向后兼容和特殊需要。但几乎所有目的都应使用 DataGridView 控件来实现。DataGrid 控件中提供而 DataGridView 控件中未提供的唯一功能是在一个控件中分层显示两个相关表中的信息。您必须使用两个 DataGridView 控件显示具有主/详细信息关系的两个表中的信息。

升级为 DataGridView 控件
如果现有应用程序在简单数据绑定方案中使用未进行自定义的 DataGrid 控件,则可以简单地使用新控件替换旧控件。这两种控件均使用标准的 Windows 窗体数据绑定结构,因此 DataGridView 控件无需使用附加配置即可显示绑定数据。您可能会想要利用改进的数据绑定功能,实际上,您可将数据绑定到 BindingSource 组件,然后将该组件绑定到 DataGridView 控件。有关更多信息,请参见 BindingSource 组件。

因为 DataGridView 控件具有全新的结构,所以不存在可将 DataGrid 自定义用于 DataGridView 控件的直接转换路径。但是,由于新控件提供了内置功能,许多 DataGrid 自定义对 DataGridView 控件来说是不必要的。如果您已为 DataGrid 控件创建了自定义列类型并想要将这些类型用于 DataGridView 控件,则必须使用新结构重新实现它们。有关更多信息,请参见自定义 Windows 窗体 DataGridView 控件。

 另外,DataGridView 就是GridView了

这样看来,前者似乎更简单了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值