dataview如何绑定DataTable,用我下面的代码加载之后,dataview2只显示字段名称,
多行记录显示多行的名称。
不知道为什么请多多指教。
        DataTable dt = new DataTable();
        dt.Columns.Add("班内号", typeof(string));
        dt.Columns.Add("姓名", typeof(string));
        dt.Columns.Add("性别", typeof(string));
                for (int i = 0; i < GridView1.Rows.Count; i++)
        {
            CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
            if (cbox.Checked == true)
            {
                string id = GridView1.DataKeys[i].Value.ToString();//得到选择那行的ID
                Response.Write(id);
                DataRow dr = dt.NewRow();
                dr[0] = GridView1.Columns[1].ToString();
                dr[1] = GridView1.Columns[2].ToString();
                dr[2] = GridView1.Columns[3].ToString();
                dt.Rows.Add(dr);
            }        }
        this.GridView2.DataSource = dt;
        this.GridView2.DataBind();

解决方案 »

  1.   

    DataTable dt里面没有实际数据可能是for 循环里面的判断出现了逻辑错误
      

  2.   

    你看看你这么写都加了什么:
     dr[0] = GridView1.Columns[1].ToString(); 
                    dr[1] = GridView1.Columns[2].ToString(); 
                    dr[2] = GridView1.Columns[3].ToString(); 
      

  3.   

    老大是不是在pageload()里面忘记加!IsPostback啦
      

  4.   

     dr[0] = GridView1.Columns[1].ToString(); 
                    dr[1] = GridView1.Columns[2].ToString(); 
                    dr[2] = GridView1.Columns[3].ToString(); 取值错了  Columns 代表 列,你取的是列的名字,即使 有 10000 行,也全部显示 列名好像改成  gridview1.row[i]...什么之类的,可以点出来,你看一下。