1、gridview模板添加checkbox,多选行, 在同一个页面,如何用另一个gridview显示勾选的多行数据,
   包含checkbox的gridview是查询结果,
2、第一个gridview代码如下:前台:<asp:Label ID="Label1" runat="server" Text="生产计划号:"></asp:Label>
                    <asp:TextBox ID="select_1" runat="server"></asp:TextBox>
                    <asp:Label ID="Label2" runat="server" Text="已转采购的材料单:"></asp:Label>                  
                    <asp:DropDownList ID="DropDownList1" runat="server">
                        <asp:ListItem Value="NULL" Selected="True">请选择</asp:ListItem>
                         <asp:ListItem Value="转采购">转采购</asp:ListItem>
                          <asp:ListItem Value="无">未 转</asp:ListItem>
                    </asp:DropDownList>
                    <asp:Label ID="Label3" runat="server" Text="Label">是否已生成采购订单:</asp:Label>
                    <asp:DropDownList ID="finish_Purchase" runat="server">
                        <asp:ListItem Selected="True" Value="NULL">请选择</asp:ListItem>
                        <asp:ListItem Value="已生成">已生成</asp:ListItem>
                        <asp:ListItem Value="无">未 成</asp:ListItem>
                    </asp:DropDownList>
                    
                 &nbsp;&nbsp;&nbsp;
                    
                    <asp:Button ID="btn_select" runat="server" Text="搜   索" 
                        onclick="btn_select_Click" />
                    
                    <br />
                    <br />
                    
                    <asp:GridView ID="gvp_gridview" runat="server" AutoGenerateColumns="False" 
                        Font-Size="Small" Width="976px" EnableModelValidation="True">
                        <Columns>
                            <asp:BoundField DataField="生产计划号" HeaderText="生产计划号" />
                            <asp:BoundField DataField="材料单编号" HeaderText="材料单编号" />
                            <asp:BoundField DataField="材料明细序号" HeaderText="材料明细序号" />
                            <asp:BoundField DataField="产品名称" HeaderText="产品名称" />
                            <asp:BoundField DataField="型号规格" HeaderText="型号规格" />
                            <asp:BoundField DataField="单位" HeaderText="单位" />
                            <asp:BoundField DataField="数量" HeaderText="数量" />
                            <asp:BoundField DataField="品牌" HeaderText="品牌" />
                            <asp:BoundField DataField="备注" HeaderText="备注" />
                            <asp:BoundField DataField="审核" HeaderText="审核" />
                            <asp:BoundField DataField="审核说明" HeaderText="审核说明" />
                            <asp:BoundField DataField="编制" HeaderText="编制" />
                            <asp:BoundField DataField="编制日期" HeaderText="编制日期" />
                            <asp:BoundField DataField="供应勾选结果" HeaderText="转采购" />
                            <asp:BoundField DataField="采购单生成" HeaderText="采购订单状态" />
                            <asp:TemplateField HeaderText="选择">
                                <EditItemTemplate>
                                    <asp:CheckBox ID="CheckBox1" runat="server" />
                                </EditItemTemplate>
                                <ItemTemplate>
                                    <asp:CheckBox ID="CheckBox1" runat="server" />
                                </ItemTemplate>
                            </asp:TemplateField>
                        </Columns>   
                    </asp:GridView>C#:
public void selectgetdata()
    {
        //连接SQL SERVER
        string ConnSqlServer = "Data Source=.;Initial Catalog=HGDataBase;Integrated Security=True;User ID=sa; pwd=3272371";
        SqlConnection Conn = new SqlConnection(ConnSqlServer);        //打开数据库
        Conn.Open();
        //生产计划号
        string 生产计划号 = select_1.Text.Trim();
        //声明查询语句变量
        string 生产计划号SQL = "";
        string 转采购SQL = "";
        string 生成采购单SQL = "";
        string extractSql = ""; ;
        //如果生产计划号不为空,生成生产计划号SQL 语句
        if (生产计划号 != "")
            生产计划号SQL = " AND 生产计划号 LIKE '%" + 生产计划号 + "%'";
        //如果“转采购”不为空,生成审核SQL语句
        if (DropDownList1.SelectedValue != "NULL")
        {
            转采购SQL = " AND 供应勾选结果 = '" + DropDownList1.SelectedValue.ToString() + "'";        }        //如果“生成采购单”不为空,生成生成采购单SQL语句
        if (finish_Purchase.SelectedValue != "NULL")
        {
            生成采购单SQL = " AND 采购单生成 = '" + finish_Purchase.SelectedValue.ToString() + "'";        }
        //综合查询语句         extractSql = "SELECT * FROM  [Orders]  WHERE 勾选的材料明细ID <>''" + 生产计划号SQL + 转采购SQL + 生成采购单SQL;
        //填充DataSet
        SqlDataAdapter Adapter = new SqlDataAdapter(extractSql, Conn);
        DataSet Ds = new DataSet();
        Adapter.Fill(Ds, "TT");          //执行命令
        gvp_gridview.DataSource = Ds.Tables["TT"];//"TT"任意起名
        gvp_gridview.DataBind();               //关闭数据库
        Conn.Close();
    }    protected void btn_select_Click(object sender, EventArgs e)
    {
        selectgetdata();
    }

解决方案 »

  1.   

    遍历第一个gridview获取以选中的行数据,赋值给第二个gridview就好了啊。
      

  2.   

    利用for循环 
     for (int i = 0; i < this.GridView1.Rows.Count; i++)
            {
                CheckBox c = (CheckBox)this.GridView1.Rows[i].Cells[0].FindControl("cb");
                if (this.CheckBox1.Checked ==true)
                {
                    c.Checked = true;
                }
                else
                {
                    c.Checked = false;
                }
    z这个是全选与全不选的问题。借鉴下
      

  3.   

    请教1楼,“遍历第一个gridview获取以选中的行数据,赋值给第二个gridview就好了啊。”
    怎么做呢?
      

  4.   

    遍历第一个gridview得到的数据 存储到一个集合中 或者datatable中 绑定第二个gridview。
      

  5.   

    for (int i = 0; i < this.GridView1.Rows.Count; i++)
      {
       CheckBox cb = (CheckBox)gvLawName.Rows[i].FindControl("CheckBox");
      if (this.cb.Checked ==true)
      {
          string id= gvLaw.Rows[i].Cells[1].Text.ToString();
          //根据id,在你绑定的dataset或datatable里面找到这个行的数据
      }
      else
      {  }
      

  6.   

    楼主说的你可以这样实现!数据库中加一个字段:state 当第一个gridview中勾选时就让哪行的state变为true(当然默认都为false),不勾选的还是false!另一个gridview查询时,只查询state字段为true的不就行了吗! for (int i = 0; i < this.GridView1.Rows.Count; i++)
      {
      CheckBox c = (CheckBox)this.GridView1.Rows[i].Cells[0].FindControl("cb");
      if (this.CheckBox1.Checked ==true)
      {
       //state为true;代码自己实现!
       }
      else
      {
       //state 为false;  代码自己实现!  }
      

  7.   

    " string id= gvLaw.Rows[i].Cells[1].Text.ToString();
      //根据id,在你绑定的dataset或datatable里面找到这个行的数据"请问:7楼! “/根据id,在你绑定的dataset或datatable里面找到这个行的数据"”这句不懂!
      能提示一下吗?
      

  8.   

    gridview模板添加checkbox, 这个数据库里是没有,要求直接在页面上做勾选,然后判断。button后,另一个gridview显示勾选。