在线等!如何操作checkbox里得到的值

dickzhang2 2010-08-23 03:55:16
for (int i = 0; i < exdgLog.Items.Count; i++)
{

CheckBox cb = exdgLog.Items[i].FindControl("cbxLogData ") as CheckBox;
if (cb.Checked == true)
{
string strSQLDelete = "DELETE FROM LOGINFO LOG_ID = '" + + "'";
DBHelper.ExecSQL(strSQLDelete);
}
}


我需要删除checkbox选中的值 。LOG_ID(日志表主键)应该等于什么呢?

foreach (DataGridItem i in exdgLog.Items)
{

if (((CheckBox)i.FindControl("cbxLogData")).Checked == true)
{
//记录选中的日志ID
string strDelSql = "DELETE FROM LOGINFO WHERE LOG_ID='" + i.Cells[1].Text + "'";
DBHelper.ExecSQL(strDelSql);
BindData();
}
}

用这种方法我可以得到checkbox的text 但是报错invalidOperationException(集合已修改;可能无法执行枚举操作)。


帮帮我 ! 解决尽量详细点 我得学会了。
...全文
220 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
yeyucao123 2010-08-23
  • 打赏
  • 举报
回复
LZ如果要用foreach也可以

string ids="";
foreach (DataGridItem i in exdgLog.Items)
{

if (((CheckBox)i.FindControl("cbxLogData")).Checked == true)
{
int count=0;
if(count==0)
{
ids=i.Cells[1].Text ;count++;
}esle{
ids+=","+ i.Cells[1].Text ;
}

}
}

public void method(string ids)
{
string [] id=ids.split(',');
for(int i=0;i<id.length;i++)
{
string strDelSql = "DELETE FROM LOGINFO WHERE LOG_ID='" + id[i]+ "'";
DBHelper.ExecSQL(strDelSql);
}
BindData();
}

wuyq11 2010-08-23
  • 打赏
  • 举报
回复
多线程环境下,其他线程修改了集合
另外一个线程对集合进行枚举操作,读取脏数据
for循环操作
itrefer 2010-08-23
  • 打赏
  • 举报
回复
这个用html的Checkbox最好使
不懂装懂 2010-08-23
  • 打赏
  • 举报
回复
for(int i=0;i<gv.rows.Count;i++)
{
string id=gv.rows[i].cell[1].tostring();
if(删除)
{
i--;
}
}
大概就这样,手打的,不对就自己找下吧
dickzhang2 2010-08-23
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 fdh120 的回复:]
for(int i=0;i<gv.rows.Count;i++)循环,当执行删除时i--
[/Quote]

用for 如何匹配表id是否就是checkbox选中的id
不懂装懂 2010-08-23
  • 打赏
  • 举报
回复
foreach (DataGridItem i in exdgLog.Items)
{

if (((CheckBox)i.FindControl("cbxLogData")).Checked == true)
{
//记录选中的日志ID
string strDelSql = "DELETE FROM LOGINFO WHERE LOG_ID='" + i.Cells[1].Text + "'";
DBHelper.ExecSQL(strDelSql);
}
}
BindData();......直接放外边
或者for(int i=0;i<gv.rows.Count;i++)循环,当执行删除时i--
dickzhang2 2010-08-23
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lvsmile 的回复:]
foreach (DataGridItem i in exdgLog.Items)
你对集合exdgLog.Item进行操作了以后集合就被改变了,foreach无法进行这样的操作,改为for循环即可
[/Quote]

string strSQLDelete = "DELETE FROM LOGINFO LOG_ID = '" + + "'";

用for我不知道怎么把id和选中的id做匹配
dickzhang2 2010-08-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wuyazhe 的回复:]
不用foreach,改用for循环。
另外,你为什么不组合一个
delete from loginfo where log_id in (id1,id2,id3....)这样一个字符串一次性删掉所有选中的行?
[/Quote]

我现在是日志的id不知怎么弄成等于checkbox选中的那行的id
LVSmile 2010-08-23
  • 打赏
  • 举报
回复
foreach (DataGridItem i in exdgLog.Items)
你对集合exdgLog.Item进行操作了以后集合就被改变了,foreach无法进行这样的操作,改为for循环即可
dickzhang2 2010-08-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 djc7811 的回复:]
CheckBox.Checked =False
[/Quote]

如果等于false 那你的意思就是反选啦,选中的不删?
dickzhang2 2010-08-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cc_net 的回复:]
foreach操作完以后在重新绑定数据
[/Quote]

帮了啊 ! 那个异常是在in上报的 ! 不明白了
dai78 2010-08-23
  • 打赏
  • 举报
回复
CheckBox.Checked =False
兔子-顾问 2010-08-23
  • 打赏
  • 举报
回复
不用foreach,改用for循环。
另外,你为什么不组合一个
delete from loginfo where log_id in (id1,id2,id3....)这样一个字符串一次性删掉所有选中的行?
cc_net 2010-08-23
  • 打赏
  • 举报
回复
foreach操作完以后在重新绑定数据
内容概要:本文针对无刷直流电机驱动的电子机械制动(EMB)执行器,建立了考虑Stribeck摩擦特性的非线性耦合动力学模型,并在Simulink环境中完成了系统级仿真分析。研究综合集成了电机动力学、齿轮传动机构与制动执行机构的动力学特性,构建了高保真的机电一体化系统模型。重点引入Stribeck摩擦模型以精确描述低速工况下执行器内部存在的静摩擦、粘滞摩擦与库仑摩擦之间的过渡行为,有效提升了系统在启停、反向运动等瞬态过程中的动态响应仿真精度。通过多工况仿真验证了模型的有效性,能够准确反映摩擦引起的爬行、滞后与定位误差等非线性现象,为EMB系统的高性能控制算法设计(如摩擦补偿、滑模控制)与结构优化提供了高可信度的仿真平台。; 适合人群:从事汽车电子制动系统、电机驱动控制、机电系统建模与仿真研究的研究生、科研人员及工程技术人员,需具备扎实的机械动力学、自动控制理论基础和MATLAB/Simulink仿真能力。; 使用场景及目标:①用于高精度电子机械制动系统的设计验证与性能预测;②为消除摩擦非线性影响的先进控制策略(如自适应控制、智能控制)提供精确的被控对象模型;③深入探究Stribeck摩擦等非线性因素对系统动态性能(如响应延迟、稳态误差)的作用机理; 阅读建议:读者应结合提供的Simulink模型文件,深入剖析Stribeck摩擦模块的数学实现与参数辨识方法,建议通过改变输入指令(如阶跃、正弦)和负载条件进行对比仿真,以直观理解非线性摩擦对系统动态特性的影响。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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