询问个gridview+cheackbox问题

redfalson 2009-11-26 11:19:59
我使用了1个gridview1控件,显示数据库的一个表

然后通过添加一列,在item和FOOTer模板中分别放入了一个checkbox控件
然后使用代码(如下)点击footer中的checkbox可以让所有列前面的勾都点上
function selectAll(control)
{
var ob=control;
xState=ob.checked;
elem=ob.form.elements;

for(i=0;i <elem.length;i++)
{
if(elem[i].type=="checkbox" && elem[i].id!=ob.id)
{
if(elem[i].checked!=xState)
elem[i].click();
}
}
}

目前我要将gridview1中选了勾的用新的一个控件gridview2生成一个表,请问如何写呢
...全文
152 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
redfalson 2009-11-26
  • 打赏
  • 举报
回复
他们说他们说要遍历gridview但是我不知道怎么做有写法么谢谢
Yaya_Pei 2009-11-26
  • 打赏
  • 举报
回复
str保存已经打钩的datakeyname.
之后再strsql = "select * from tablename where id in ("+ str +")"
应该可以搞定。。
yekongnanhai 2009-11-26
  • 打赏
  • 举报
回复
写个函数
redfalson 2009-11-26
  • 打赏
  • 举报
回复
自己跳一下
哈喽Baby 2009-11-26
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 redfalson 的回复:]
你导出excel数据如何导出的呢,我直接用的系统自带控件
[/Quote]
我不会,没用过,呵呵
redfalson 2009-11-26
  • 打赏
  • 举报
回复
你导出excel数据如何导出的呢,我直接用的系统自带控件
哈喽Baby 2009-11-26
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 redfalson 的回复:]
虽然非常感谢,但是可能我基础太低还是云里雾里的,我在试试吧
[/Quote]
慢慢的就好了,我也很菜
redfalson 2009-11-26
  • 打赏
  • 举报
回复
虽然非常感谢,但是可能我基础太低还是云里雾里的,我在试试吧
哈喽Baby 2009-11-26
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 redfalson 的回复:]
询问下,我用的数据控件中的SQLDATASOURCE控件生成的怎么改
[/Quote]
和哪个控件生成的没关系,这个方法用不到控件,你写一个根据id查询数据的方法行了
redfalson 2009-11-26
  • 打赏
  • 举报
回复
询问下,我用的数据控件中的SQLDATASOURCE控件生成的怎么改
哈喽Baby 2009-11-26
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 redfalson 的回复:]
提示找不到类型控件名称Department,我是新手看是否能帮忙说的详细点,谢谢了,主要对这个不太熟悉,其实我本来想的是吧一个gridview显示出来的数据倒成excel,由于数据多就需要分页看,导出只需要导出后面更新的数据,就需要用checkbox来选择新的,然后在导出,之前看的方法好像都比较复杂,我就决定把需要导出的数据生成一个新表,然后直接导出新的这个表就可以了,现在能通过代码获取到ID,但是不知道怎么保存和使用,直接用的gridview分页的,并且使用的数据源控件来当数据源的,然后在gridview后面直接添加了一个列放入checkbox,然后来写代码的
function CheckAll(checkbox)
{
var elements = checkbox.form.elements;
for(var i = 0;i < elements.length;i++)
{
if(elements[i].type == "checkbox" && elements[i].id != checkbox.id)
{
elements[i].checked = checkbox.checked;
}
}
}
</script>
获取的方法用的
foreach (GridViewRow row in this.GridView1.Rows)
{
CheckBox CheckRow = (CheckBox)row.FindControl("CheckRow");
if (CheckRow.Checked)
{
string id = this.GridView1.DataKeys[row.RowIndex].Values["au_id"].ToString();
}
}
然后得到了这个ID,但是不知道怎么用
[/Quote]
大哥,department那是我测试时用的我自己数据库的表,你gridview1上绑的什么表,就换成你那个表的名字

depart = dm.GetDepartMentById(Convert.ToInt32(dr.Cells[4].Text)); 这个方法是要你自己来写的
redfalson 2009-11-26
  • 打赏
  • 举报
回复
提示找不到类型控件名称Department,我是新手看是否能帮忙说的详细点,谢谢了,主要对这个不太熟悉,其实我本来想的是吧一个gridview显示出来的数据倒成excel,由于数据多就需要分页看,导出只需要导出后面更新的数据,就需要用checkbox来选择新的,然后在导出,之前看的方法好像都比较复杂,我就决定把需要导出的数据生成一个新表,然后直接导出新的这个表就可以了,现在能通过代码获取到ID,但是不知道怎么保存和使用,直接用的gridview分页的,并且使用的数据源控件来当数据源的,然后在gridview后面直接添加了一个列放入checkbox,然后来写代码的
function CheckAll(checkbox)
{
var elements = checkbox.form.elements;
for(var i = 0;i < elements.length;i++)
{
if(elements[i].type == "checkbox" && elements[i].id != checkbox.id)
{
elements[i].checked = checkbox.checked;
}
}
}
</script>
获取的方法用的
foreach (GridViewRow row in this.GridView1.Rows)
{
CheckBox CheckRow = (CheckBox)row.FindControl("CheckRow");
if (CheckRow.Checked)
{
string id = this.GridView1.DataKeys[row.RowIndex].Values["au_id"].ToString();
}
}
然后得到了这个ID,但是不知道怎么用
五月初 2009-11-26
  • 打赏
  • 举报
回复
protected void Button2_Click(object sender, EventArgs e)
{
List<Department> list = new List<Department>();//实体集合
Department depart = new Department();//实体
foreach (GridViewRow dr in GridView1.Rows)
{
// cell[i]就是CheckBox所在的列,从0开始
if ((dr.Cells[0].FindControl("CheckBox1") as CheckBox).Checked)
{
// 这个方法是根据主键查实体 cells[4]就是主键所在列,你看看你的gridview,id在哪一列,从0开始
depart = dm.GetDepartMentById(Convert.ToInt32(dr.Cells[4].Text));
list.Add(depart);
this.GridView3.DataSourceID = "";
this.GridView3.DataSource = list;
this.GridView3.DataBind();
}
}
}
哈喽Baby 2009-11-26
  • 打赏
  • 举报
回复

protected void Button2_Click(object sender, EventArgs e)
{
List<Department> list = new List<Department>();//实体集合
Department depart = new Department();//实体
foreach (GridViewRow dr in GridView1.Rows)
{
// cell[i]就是CheckBox所在的列,从0开始
if ((dr.Cells[0].FindControl("CheckBox1") as CheckBox).Checked)
{
// 这个方法是根据主键查实体 cells[4]就是主键所在列,你看看你的gridview,id在哪一列,从0开始
depart = dm.GetDepartMentById(Convert.ToInt32(dr.Cells[4].Text));
list.Add(depart);
this.GridView3.DataSourceID = "";
this.GridView3.DataSource = list;
this.GridView3.DataBind();
}
}
}

你看一下
redfalson 2009-11-26
  • 打赏
  • 举报
回复
id就是主键,我现在能获取到主键是多少了,但是不知道后面怎么做了,听说用数组,
哈喽Baby 2009-11-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 redfalson 的回复:]
目前我能获取到我选择的列的id项目了,但是他是连接成一串的请问如何来使用这串,当下面gridview2的输入内容呢
[/Quote]
真晕,这个表有主键吗?然后哪一列选中就根据这一列的主键查实体,然后返回到页面,用list存起来,这个list就是gridview2的数据源
redfalson 2009-11-26
  • 打赏
  • 举报
回复
目前我能获取到我选择的列的id项目了,但是他是连接成一串的请问如何来使用这串,当下面gridview2的输入内容呢
lxiron 2009-11-26
  • 打赏
  • 举报
回复
给你个思路,把选取的行用循环放到一个table里,然后将这个Table帮顶到Gridview2上就Ok了!
Yaya_Pei 2009-11-26
  • 打赏
  • 举报
回复
While i < Me.GridView1.Rows.Count
If (CType(Me.GridView1.Rows(i).FindControl("cb"), CheckBox).Checked = True) Then

End If
i += 1
End While

就这样遍历就可以了啊。。
redfalson 2009-11-26
  • 打赏
  • 举报
回复
或是gridview有没多项选择这个功能呢

62,046

社区成员

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

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

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

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