gridview模板添加checkbox,多选行, 在同一个页面,如何用另一个gridview显示勾选的多行数据?

guuxy_G 2012-07-18 10:28:58
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>

   

<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();
}
...全文
451 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
guuxy_G 2012-07-18
  • 打赏
  • 举报
回复
稍等一下,没看明白,我花点时间看看。
H_Gragon 2012-07-18
  • 打赏
  • 举报
回复
楼主说的你可以这样实现!数据库中加一个字段: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; 代码自己实现!

}

guuxy_G 2012-07-18
  • 打赏
  • 举报
回复
楼上能给个实例吗??
_萧萧 2012-07-18
  • 打赏
  • 举报
回复
上面是我以前写过的代码 应该和你的相差不大
_萧萧 2012-07-18
  • 打赏
  • 举报
回复
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
{

}
理想就像内裤 2012-07-18
  • 打赏
  • 举报
回复
遍历第一个gridview得到的数据 存储到一个集合中 或者datatable中 绑定第二个gridview。
guuxy_G 2012-07-18
  • 打赏
  • 举报
回复
请教1楼,

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

阿拉敏敏 2012-07-18
  • 打赏
  • 举报
回复
利用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这个是全选与全不选的问题。。。。借鉴下。。。
guuxy_G 2012-07-18
  • 打赏
  • 举报
回复
沉太快,自己D
guuxy_G 2012-07-18
  • 打赏
  • 举报
回复
如何遍历,能详细一些吗?最好代码完整。 愚笨的初学者
快溜 2012-07-18
  • 打赏
  • 举报
回复
遍历第一个gridview获取以选中的行数据,赋值给第二个gridview就好了啊。
guuxy_G 2012-07-18
  • 打赏
  • 举报
回复
gridview模板添加checkbox, 这个数据库里是没有,要求直接在页面上做勾选,然后判断。button后,另一个gridview显示勾选。
guuxy_G 2012-07-18
  • 打赏
  • 举报
回复
" string id= gvLaw.Rows[i].Cells[1].Text.ToString();
//根据id,在你绑定的dataset或datatable里面找到这个行的数据"

请问:7楼! “/根据id,在你绑定的dataset或datatable里面找到这个行的数据"”这句不懂!
能提示一下吗?

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧