我在BindGrid()方法中创建了一个datatable,请问GridView如何调用这个方法来绑定此datatable,以此来显示datatable的数据

解决方案 »

  1.   


    BindGrid方法里绑定就行了 GridView的ID.DataSource = 你要绑定的DataTable;
     GridView的ID.DataBind();
      

  2.   

    http://archive.cnblogs.com/a/657275/
      

  3.   

    没有用,因为BindGrid()方法返回datatable值,在方法中没有办法绑定
      

  4.   

    什么意思?那你定义个datatable接受BindGrid()的返回值或者BindGrid()里的datatable定义成全局
      

  5.   

    既然BindGrid方法返回DataTable,则直接把返回后的DataTable赋值给DataGridView的DataSource属性了,赋值后会自动更新数据显示的。
    dataGridView1.DataSource=BindGrid();
      

  6.   


    那你返回DataTable的方法绑定给GridView的DataSourceGridView的ID.DataSource = BindGrid();
     GridView的ID.DataBind();PS:你如果是绑定,不一定的返回啊在那方法里绑字就OK了
      

  7.   

      protected DataTable BindGrid() {        DataTable dt = new DataTable(); //初始化DataTable        dt.PrimaryKey = new DataColumn[] { dt.Columns.Add("ID", typeof(Guid)) };    //建立DataTable的自增列,請查閱Guid的含義        dt.Columns.Add("DeptName", typeof(string)); //為該DataTable創建第一列,字段名稱為DeptName,類型是string        dt.Columns.Add("MemberName", typeof(string));         string sqlStr = "";        OleDbConnection conn = new OleDbConnection(ConfigurationSettings.AppSettings["ConnStr"]);        try        {            conn.Open();
    sqlStr = "select [ID],[DeptName] from [tbDept] where [ParentID]<>0 and [ParentID]<>1 and [RoleID]=0";   //從tbDept讀取所有課的集合            OleDbDataAdapter da = new OleDbDataAdapter(sqlStr, conn);            DataSet ds = new DataSet();            da.Fill(ds);    //填充ds             string deptID = "";            string deptName = "";            string memberName = "";            for (int i = 0; i < ds.Tables[0].Rows.Count; i++) {                deptID = ds.Tables[0].Rows[i]["ID"].ToString();                deptName = ds.Tables[0].Rows[i]["DeptName"].ToString();                 sqlStr = "select [DeptName] from [tbDept] where [ParentID]=" + Int32.Parse(deptID) + "";    //對于任意的課,讀取該課下成員的集合                da = new OleDbDataAdapter(sqlStr, conn);
     DataSet dsMem = new DataSet();                da.Fill(dsMem);                for (int j = 0; j < dsMem.Tables[0].Rows.Count; j++) {                    memberName = dsMem.Tables[0].Rows[j]["DeptName"].ToString();                    dt.Rows.Add(new object[] { Guid.NewGuid, deptName, memberName });   //將課,成員按照之前定義的結構填充DataTable                }            }        }        catch (Exception ex)        {            throw new Exception(ex.Message);        }        finally {            conn.Close();            conn.Dispose();        }
       return dt;    }BindGrid()方法内容如上,此方法没有任何错误,我调试过,只需要把方法的数据内容显示在gridview上,请各位牛人帮帮我~~~~
      

  8.   

    在page_load中输入GridView1.DataSource=BindGrid(); GridView1.databind()按F5运行浏览器什么都没有
      

  9.   

    我在ASPX页面中只加了<asp:GridView id="GridView1" runat="server" AutoGenerateColumns="false"></asp:GridView>然后什么都没有加,不知用gridview什么属性可以调用此BindGrid()方法把数据显示出来
      

  10.   

    AutoGenerateColumns="false“
    去了这个
      

  11.   

    你这是把几个操作糅合到一个函数里面操作,太乱了,我觉得你应该分开操作,这样层次清楚。我就想问一下DataBind方法返回的dt是你要绑定到Gridview上的数据源吗?
      

  12.   

    在网上搜一下GridView的用法!