首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

质疑net1.1的帮助文档的DataGrid.DataSource

2011-12-23 
置疑net1.1的帮助文档的DataGrid.DataSource按着文档上所说,应该可以得到DataGrid的DataSource,我用DataVi

置疑net1.1的帮助文档的DataGrid.DataSource
按着文档上所说,应该可以得到DataGrid的DataSource,我用DataView,DataSet都取不到数据?为何

ms-help://MS.NETFrameworkSDKv1.1.CHS/cpref/html/frlrfSystemWindowsFormsDataGridClassDataSourceTopic.htm


DataGrid.DataSource   属性     [C#]请参见
DataGrid   类   |   DataGrid   成员   |   System.Windows.Forms   命名空间   |   DataMember   |   DataSet   |   DataViewManager   |   DataView   |   DataGrid   成员(Visual   J#   语法)   |   C++   托管扩展编程  
要求
平台:   Windows   98,   Windows   NT   4.0,   Windows   ME,   Windows   2000,   Windows   XP   Home   Edition,   Windows   XP   Professional,   Windows   Server   2003   系列,   .NET   Framework   精简版   -   Windows   CE   .NET
语言
C#

C++

JScript

Visual   Basic

全部显示
获取或设置网格所显示数据的数据源。

[Visual   Basic]
Public   Property   DataSource   As   Object

[C#]
public   object   DataSource   {get;   set;}

[C++]
public:   __property   Object*   get_DataSource();
public:   __property   void   set_DataSource(Object*);

[JScript]
public   function   get   DataSource()   :   Object;
public   function   set   DataSource(Object);

属性值
作为数据源的对象。

备注
在运行时使用   SetDataBinding   方法来设置   DataSource   和   DataMember   属性。

下列数据源有效:  

DataTable  
DataView  
DataSet  
DataViewManager  
任何实现   IListSource   接口的组件  
任何实现   IList   接口的组件  
有关数据源的更多信息,请参见   Binding   类的概述。

如果   DataSource   引用包含的表不止一个,则必须向   DataMember   属性设置一个字符串,该字符串指定要绑定到的表。例如,如果   DataSource   为包含名为   Customers、Orders   和   OrderDetails   三个表的   DataSet   或   DataViewManager,则必须指定要绑定的表。

将   DataSource   设置为一个不实现   IList   接口的对象或者一个   IListSource   会导致网格发生异常。

通过将   DataView   用作数据源并将   AddNew   属性设置为   false,可以创建网格,该网格允许用户编辑数据但阻止他们添加新行。

要将   DataGrid   绑定到对象的强类型数组,该对象必须包含公共属性。要创建显示这类数组的   DataGridTableStyle,请将   MappingName   属性设置为   classname[],其中   classname   将被类名替换。另外还要注意   MappingName   属性须区分大小写。有关示例,请参见   MappingName   属性。

也可以将   DataGrid   绑定到   ArrayList。ArrayList   的一个功能是它可以包含多种类型的对象,但当列表中的所有项与第一项具有相同的类型时,DataGrid   只能绑定到这类列表。这意味着所有的对象必须是同一种类型,或者必须从与列表中第一项相同的类继承。例如,如果列表中的第一项为   Control,则第二项可能为   TextBox(它从   Control   继承)。另一方面,如果第一项为   TextBox,则第二个对象就不可能是   Control。此外,ArrayList   在绑定时必须包含项目。空   ArrayList   会导致空网格。当绑定到   ArrayList   时,请将   DataGridTableStyle   的   MappingName   设置为“ArrayList”(类型名)。

示例
[Visual   Basic,   C#]   下面的示例显示如何设置   DataSource   和   DataMember(需要时),以便将   System.Windows.Forms.DataGrid   同时绑定到   DataView   和   DataSet。该示例还显示如何从   System.Windows.Forms.DataGrid   返回数据源。

[Visual   Basic]  
Private   Sub   BindToDataView(myGrid   As   DataGrid)
        '   Create   a   DataView   using   the   DataTable.
        Dim   myTable   As   New   DataTable( "Suppliers ")
        '   Insert   code   to   create   and   populate   columns.


        Dim   myDatatView   As   New   DataView(myTable)
        myGrid.DataSource   =   myDatatView
End   Sub   'BindToDataView

Private   Sub   BindToDataSet(myGrid   As   DataGrid)
        '   Create   a   DataSet.
        Dim   myDataSet   As   New   DataSet( "myDataSet ")
        '   Insert   code   to   populate   DataSet   with   several   tables.
        myGrid.DataSource   =   myDataSet
        '   Use   the   DataMember   property   to   specify   the   DataTable.
        myGrid.DataMember   =   "Suppliers "
End   Sub   'BindToDataSet

Private   Function   GetDataViewFromDataSource()   As   DataView
        '   Create   a   DataTable   variable,   and   set   it   to   the   DataSource.
        Dim   myDatatView   As   DataView
        myDatatView   =   CType(dataGrid1.DataSource,   DataView)
        Return   myDatatView
End   Function   'GetDataViewFromDataSource

Private   Function   GetDataSetFromDataSource()   As   DataSet
        '   Create   a   DataSet   variable,   and   set   it   to   the   DataSource.
        Dim   myDataSet   As   DataSet
        myDataSet   =   CType(dataGrid1.DataSource,   DataSet)
        Return   myDataSet
End   Function   'GetDataSetFromDataSource

[C#]  
private   void   BindToDataView(DataGrid   myGrid){
        //   Create   a   DataView   using   the   DataTable.
        DataTable   myTable   =   new   DataTable( "Suppliers ");
        //   Insert   code   to   create   and   populate   columns.
        DataView   myDataView   =   new   DataView(myTable);
        myGrid.DataSource   =   myDataView;
  }
  private   void   BindToDataSet(DataGrid   myGrid){
        //   Create   a   DataSet.
        DataSet   myDataSet   =   new   DataSet( "myDataSet ");
        //   Insert   code   to   populate   DataSet   with   several   tables.
        myGrid.DataSource   =   myDataSet;
        //   Use   the   DataMember   property   to   specify   the   DataTable.
        myGrid.DataMember   =   "Suppliers ";
  }
  private   DataView   GetDataViewFromDataSource(){
        //   Create   a   DataTable   variable,   and   set   it   to   the   DataSource.
        DataView   myDataView;
        myDataView   =   (DataView)   dataGrid1.DataSource;


        return   myDataView;
  }
  private   DataSet   GetDataSetFromDataSource(){
        //   Create   a   DataSet   variable,   and   set   it   to   the   DataSource.
        DataSet   myDataSet;
        myDataSet   =   (DataSet)   dataGrid1.DataSource;
        return   myDataSet;
  }


[解决办法]
可以取到.如果有的话.如dataGrid1.DataSource = dt;dt = (DataTable)dataGrid1.DataSource ;取不到的情况可能是,postback了.

热点排行