//我想大概是你的返回直问题
private DataTable CreateDataSource() 
{
DataTable dt = new DataTable();
DataRow dr;
 
dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));
 
for (int i = 0; i <= 8; i++) 
{
dr = dt.NewRow();
 
dr[0] = i;
dr[1] = "Item " + i.ToString();
dr[2] = 1.23 * (i + 1);
 
dt.Rows.Add(dr);
}
 
return dt;
}
private void Page_Load(object sender, System.EventArgs e)
{
dgr_test.DataSource =CreateDataSource().DefaultView;
dgr_test.DataBind();
}

解决方案 »

  1.   

    你的DataGrid没有数据,当然出不来了!
      

  2.   

    根本就没有数据
    只能生成一个datagrid,里面一条记录也没有,所以在也面上不显示
    若要显示数据,需要加上数据适培器
    并且有查询语句
      

  3.   

    但是我的CreateDataSource() 已经生成了一个DataView ,这个有数据的阿
    里面是自己加入的数据
      

  4.   

    #region Web Form Designer generated code
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    } private void InitializeComponent()
    {
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion在你的代码中少了关键的一个东东
    #region
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }#endregion
    加上就可以了,
      

  5.   

    我的是:
    <%@ Import Namespace="System.Data" %>
    <%@ Page Language="C#" debug="true" %>
     <html>
     <script language="C#" runat="server">    
        ICollection CreateDataSource() 
        {
           DataTable dt = new DataTable();
           DataRow dr;
           Random Rand_Num = new Random(); 
           dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
           dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
           dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double))); 
           for (int i = 0; i < 15; i++) 
           {
              dr = dt.NewRow(); 
              dr[0] = i;
              dr[1] = "Item " + i.ToString();
      dr[2] = 1.23 * i ;
              dt.Rows.Add(dr);
           } 
           DataView dv = new DataView(dt);
           return dv;
        }
        
        void Page_Load(Object sender, EventArgs e) 
        { 
           if (!IsPostBack) 
           {          
              ItemsGrid.DataSource = CreateDataSource();
              ItemsGrid.DataBind();
           } 
        } 
       
     </script> 
     <body> 
        <form runat=server> 
           <h3><font face="Verdana">DataGrid</font></h3> 
           <asp:DataGrid id="ItemsGrid" runat="server"
                BorderColor="black"
                BorderWidth="1"
                CellPadding="3"
                HeaderStyle-BackColor="#00aaaa"
                AutoGenerateColumns="true"/> 
        </form> 
     </body>
     </html>没有问题啊.
      

  6.   

    主要是因为这个上面所说的是由.net自动产生的,而你肯定是将其中所有的代码都删掉了自己又写上去的,所以就会出错
      

  7.   

    我的做法就是,你说得这样
    把所有代码删了,自己又写的,
    还有 override protected void OnInit(EventArgs e)
     加在什么地方那?谢了