导航
  • 主页
  • ASP
  • .NET Framework
  • Web Services
  • VB
  • VC
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • LINQ
  • 问答

关于模版列的编辑问题

bluefish922 2002-06-25 11:43:55
CHECK1为checkboxlist,有9个checkbox,分别有对应的VALUE(integer);dv是视图,不为空。
代码如下:
For i = 0 To dv.Count - 1
check = DataGrid1.Items(i).Cells(1).FindControl("check1")
For j = 0 To 9
If check.Items(j).Selected Then
qx += check.Items(j).Value
End If
Next
Next
结果是QX总为0,请问是哪里错误?
...全文
44 点赞 收藏 10
写回复
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluefish922 2002-06-25
我是在ItemTemplate 中添加的checkboxlist.那就是说不能对它进行操作拉?
回复
icyer 2002-06-25
如果你的DropDownList是放在编辑模板中,那在非编辑状态下是不能访问的。
回复
icyer 2002-06-25
如果你的DropDownList是放在编辑模板中,那在非编辑状态下是不能访问的。
回复
bluefish922 2002-06-25
datagrid的模版列在非编辑状态下可以进行操作吗?
回复
bluefish922 2002-06-25
不好意思,我说错了,是10个checkbox.
我也将它转换了,但是还是这样的。我调试过,
If check.Items(j).Selected Then
qx += check.Items(j).Value
End If
中的qx += check.Items(j).Value根本就没执行,每次都跳出来了,是什么原因?

回复
mbm 2002-06-25
遍历datagrid上的checkbox
c#代码

string sql="delete from t_CarRegister where cLicense is null ";
foreach(DataGridItem dgi in DataGrid1.Items)
{
CheckBox cb=(CheckBox)(dgi.Cells[0].Controls[1]);
if (cb.Checked==true)
{
int i=dgi.ItemIndex;
string License=DataGrid1.DataKeys[i].ToString();
sql+=" or cLicense='"+License+"'";
}
}
回复
icyer 2002-06-25
跟踪调试一下不就知道了。
你说CheckBoxList里面有9个CheckBox,但是你的代码里面j是循环了10次的,没出错?
不知道VB.NET的自动转换功能有多强大,但是建议还是把
check = DataGrid1.Items(i).Cells(1).FindControl("check1")
修改成:
check = CType(DataGrid1.Items(i).Cells(1).FindControl("check1"),CheckBoxList)
回复
bluefish922 2002-06-25
非常感谢各位,问题我解决了,不过不是循环的问题,而是在循环上面,我把DATAGRID多绑定了一道,所以无论怎么check.Items(j).Selected 都是等于false,所以才不执行这句。
回复
mbm 2002-06-25
如果想遍历datagrid的每一行,不要用什么dv
用DataGridItem

int qx=0;
foreach(DataGridItem dgi in DataGrid1.Items)
{
CheckBoxList cb=(CheckBoxList)(dgi.Cells[0].Controls[1]);
if (cb.Items[0].Selected)
{
qx+=cb.Items[0].Value; }
}
回复
mbm 2002-06-25
你的错误很明显
你想遍历datagrid上的所有checkboxlist

但你的代码0~9并不是在一个checkboxlist里

而是每一个的CHECK1.items[0]

当然不会进入循环去累加了
回复
发动态
发帖子
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
社区公告
暂无公告