| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4888 人关注过本帖
标题:Gridview和CheckBox的问题!
只看楼主 加入收藏
lbhnrg2021
Rank: 1
等 级:新手上路
帖 子:88
专家分:0
注 册:2006-8-6
收藏
 问题点数:0 回复次数:11 
Gridview和CheckBox的问题!

我用FOR循环遍历检索Girdview中CheckBox是否被选中,但是无法实现!开始我以为是语句错误,然后我用response.write()返回搜索结果,但是我选中的CheckBox的Checked状态都为False这是怎么回事,但是我想了好久,逻辑方面没有什么问题啊!遍历的语法也没有用错.请高手指教

搜索更多相关主题的帖子: CheckBox Gridview 遍历 搜索 response 
2007-01-19 12:05
6ygg
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2007-1-19
收藏
得分:0 
最好是把你的代码发出来看看..也许你认为没错的地方却错了,呵呵

一个天才顶不上十个笨蛋!!!! 书山有路勤为径,学海无涯友相伴。
2007-01-19 12:39
lbhnrg2021
Rank: 1
等 级:新手上路
帖 子:88
专家分:0
注 册:2006-8-6
收藏
得分:0 

protected void Button1_Click(object sender, EventArgs e)
{
all.DCommd=new System.Data.OleDb.OleDbCommand();
int GridRows = Convert.ToInt32(GridView1.Rows.Count);
int i;
for (i = 0; i < GridRows; i++)
{
int Count = Convert.ToInt32(all.MySet.Tables[DataStr_1].Rows[i].ItemArray[0]);
String Command;
if (((CheckBox)GridView1.Rows[i].FindControl("DelCheck")).Checked)
{
Command = "DELETE FROM LeText WHERE LeText_ID=" + Convert.ToString(Count);
Select.DC(Command, all.MyConn);
all.MyConn.Open();
all.DCommd.ExecuteNonQuery();
all.MyConn.Close();
}
}
}这是原代码!


傲鬼
2007-01-19 13:04
lbhnrg2021
Rank: 1
等 级:新手上路
帖 子:88
专家分:0
注 册:2006-8-6
收藏
得分:0 

这个是原来数据库的代码!
这个才是控件状态搜索的代码!
all.DCommd=new System.Data.OleDb.OleDbCommand();
int GridRows = Convert.ToInt32(GridView1.Rows.Count);
int i;
for (i = 0; i < GridRows; i++)
{
int Count = Convert.ToInt32(all.MySet.Tables[DataStr_1].Rows[i].ItemArray[0]);
String Command;
bool isChecked = ((CheckBox)GridView1.Rows[i].FindControl("DelCheck")).Checked;
Response.Write(Convert.ToString(isChecked));
}返回的状态全部是FALSE,不管你选中还是没选中!


傲鬼
2007-01-19 13:12
6ygg
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2007-1-19
收藏
得分:0 
[CODE] all.DCommd = new System.Data.OleDb.OleDbCommand();
int GridRows = Convert.ToInt32(GridView1.Rows.Count);
int i;
CheckBox checkOf = null;
bool isChecked = false;
for (i = 0; i < GridRows; i++)
{
isChecked = false;
int Count = Convert.ToInt32(all.MySet.Tables[DataStr_1].Rows[i].ItemArray[0]);
String Command;
checkOf = (CheckBox)GridView1.Rows[i].FindControl("DelCheck");
isChecked = checkOf.Checked;
Response.Write(Convert.ToString(isChecked));
}[/CODE]

一个天才顶不上十个笨蛋!!!! 书山有路勤为径,学海无涯友相伴。
2007-01-19 13:30
lbhnrg2021
Rank: 1
等 级:新手上路
帖 子:88
专家分:0
注 册:2006-8-6
收藏
得分:0 
还是FALSE,你自己试试看!郁闷了!javascript这个又不好做.不过还要是感谢你!

傲鬼
2007-01-19 13:48
summoner
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:1622
专家分:0
注 册:2005-3-3
收藏
得分:0 

试试这个看看,打断点跑一遍,看看数组里都是些什么值
string[] deleteids = new string[GridView1.Rows.Count];
for (int i = 0; i < GridView1.Rows.Count; i++)
{
CheckBox cb = (CheckBox) GridView1.Rows[i].Cells[0].Controls[1]; //Cell[0]这个代表CheckBox列在第一列,视具体情况定
if (cb.Checked)
{
deleteids[i] = ids[i];
}
}


[URL=javascript:window.close();e=new Enumerator(window.opener.document.images);for(;!e.atEnd();e.moveNext()){e.item().src=\'http://blog./UploadFiles/2007-1/117175967.gif\';}]其疾如風、其徐如林、侵掠如火、不動如山、難知如陰、動如雷震[/URL]
2007-01-19 14:31
chenxkfox
Rank: 1
等 级:新手上路
威 望:1
帖 子:123
专家分:0
注 册:2005-8-18
收藏
得分:0 
你看看这个!
图片附件: 游客没有浏览图片的权限,请 登录注册


,SQL SERVER 群号:17280478
2007-01-19 15:45
lbhnrg2021
Rank: 1
等 级:新手上路
帖 子:88
专家分:0
注 册:2006-8-6
收藏
得分:0 
都没用!这个测试过了!我把原码全部发上去,希望大家讨论下,我开始认为是B/S的问题,但是测试过,状态都有保存啊!而且Gridview我也只绑定一次!没有2次绑定.我做全选设置也是可以的!但是就是按删除按扭的时候,无法搜索CheckBox的Checked状态.不管选还是没选都一个样!Checked都是false值把我搞郁闷了!
protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
int GridRows = Convert.ToInt32(GridView1.Rows.Count);
int i;
if (CheckBox1.Checked)
{
for (i = 0; i < GridRows; i++)
{
((CheckBox)GridView1.Rows[i].FindControl("myall")).Checked = true;
}
}
else
{
for (i = 0; i < GridRows; i++)
{
((CheckBox)GridView1.Rows[i].FindControl("myall")).Checked = false;
}
}
}
protected void Button1_Click(object sender, EventArgs e)
{
int x = 0;
for (int i = 0; i < this.GridView1.Rows.Count; i++)
{
bool bb = CheckBox1.Checked;
CheckBox cb = (CheckBox)GridView1.Rows[i].FindControl("myall");
if (cb.Checked)
{
x += 1;
}
}
Response.Write(Convert.ToString(x));
this.CheckBox1.Checked = false;
GridView1.DataBind();
}这就是全选和删除按扭的全部代码!删除按扭这段代码是用来测试,CheckBox的Checked状态的!

傲鬼
2007-01-19 18:02
lbhnrg2021
Rank: 1
等 级:新手上路
帖 子:88
专家分:0
注 册:2006-8-6
收藏
得分:0 
谢谢大家,我知道了!我已经搞出来了!EnableViewState属性要设置:false,是一个典型的B/S错误,因为起初页面读取数据的时候一直存在Enableviewstate中,也就是说,当你选择自己建立的asp控件的是时候前面状态并没有改变,但是关闭enableviewstate后,状态就不会保存,所以原来的状态刷新后就不会在保存,而它会记录新状态,我们就用这个状态.我自己的理解是这样的!看来要多看看state的教程!搞了一个下午,太谢谢大家了!可能我的理解对于大家来说些累,不过和大家分享是我的快事!

傲鬼
2007-01-19 18:47
快速回复:Gridview和CheckBox的问题!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019652 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved