listview有8列:名称,添加,删除,修改,查询,显示,受理,操作;行数不固定,名称列绑定数据,操作列添加事件(分配),其他列为checkbox
比如:(1 2 3 4 5 6均为checkbox)
A1  1  2  3  4  5  6  分配
A2  1  2  3  4  5  6  分配
A3  1  2  3  4  5  6  分配
·  · · · · · · ·
· ·  · · · · · ·
An  1  2  3  4  5  6  分配
问:如何知道点击的分配是 哪一行 ?如何知道分配的那一行所选中的是哪些checkbox?

解决方案 »

  1.   

    直接用控件的ID
    foreach (ListViewDataItem di in ListView1.Items)
                {
                    CheckBox cb1 = di.FindControl("cb1") as CheckBox;
                    CheckBox cb2 = di.FindControl("cb2") as CheckBox;
                    CheckBox cb3 = di.FindControl("cb3") as CheckBox;
                    CheckBox cb4 = di.FindControl("cb4") as CheckBox;
                    CheckBox cb5 = di.FindControl("cb5") as CheckBox;
                    CheckBox cb6 = di.FindControl("cb6") as CheckBox;                
                }
    遍历控件
    foreach (ListViewDataItem di in ListView1.Items)
                {
                    foreach (Control cl in di.Controls)
                    {
                        if (cl is CheckBox)
                        {
                            ....
                        }
                    }
                }
      

  2.   

    问题1已解决,可以通过绑定ID。
    问题2如何知道分配的那一行所选中的是哪些checkbox?
    问题3再次读取出数据时,如何给某一行的某一个checkbox赋值(是否选中)
    注意:行数不确定,不能给指定行赋值,取值
      

  3.   

    2.所有checkbox有相应的id或者其他属性,匹配上。
    3.遍历是按照顺序的。所以无论是行还是checkbox都是按顺序来的
      

  4.   

    for循环嵌套遍历所有行的控件,判断checkbox是不是被选中
      

  5.   

    再次读取的时候,肯定是在页面加载的时候 ,页面加载前,listview能够加载完成么?