我是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不受支持吗?
答案 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”。它可能是一种不同的控制。