迭代listview单元格值

时间:2012-06-15 17:51:14

标签: asp.net listview

我是asp.net的新手,并尝试将值从Sqlserver拉入listView(asp.net)。在代码隐藏中,如果选中rowY中的复选框,我想遍历所有行并为columnX拉取单元格值。我在以下代码上遇到编译错误但无法找出问题。我可以从GridView获取单元格值而不是ListView。

while (i < WOListView.Items.Count) {
  CheckBox cbCell = (CheckBox)WOListView.Items[i].FindControl("CheckBox1");
  if (cbCell.Checked) {
      if (WOListView.Items[i].SubItems[1].Text == "WO") {
        do stuff...
      }
  }
}

结果错误代码:

  

CS1061:'System.Web.UI.WebControls.ListViewDataItem'不包含'SubItems'的定义,也没有扩展方法'SubItems'接受'System.Web.UI.WebControls.ListViewDataItem'类型的第一个参数找到了

有不同的方法吗? SubItems不受支持吗?

2 个答案:

答案 0 :(得分:1)

listview中没有子项。如果我没有错,你正在寻找listview中的控件

while (i < WOListView.Items.Count) {
  CheckBox cbCell = (CheckBox)WOListView.Items[i].FindControl("CheckBox1");
  if (cbCell.Checked) {
      Label somelabel = (Label)WOListView.Items[i].FindControl(“someLabel”);
      //if (WOListView.Items[i].SubItems[1].Text == "WO") {
       if (somelabel.Text == "WO") {
        do stuff...
      }
  }
} 

答案 1 :(得分:0)

  

不支持SubItem吗?

不,这就是你得到编译错误的原因。

在我看来,你可能正在寻找这样的东西:

while (i < WOListView.Items.Count) {
  CheckBox cbCell = (CheckBox)WOListView.Items[i].FindControl("CheckBox1");
  if (cbCell.Checked) {
      if ((WOListView.Items[i].Controls[1] as Label).Text == "WO") {
        do stuff...
      }
  }
}

请注意as Label。假设您正在尝试检查ListView行中的Label控件是否具有文本“WO”。它可能是一种不同的控制。