2012-06-15 70 views
1

我是新來的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」不包含關於「子項」的定義和沒有擴展方法「子項」接受可以找到類型'System.Web.UI.WebControls.ListViewDataItem'的第一個參數

是否有不同的方式來做到這一點? SubItems不被支持?

+0

尋找控制什麼都看透'.SubItems [1] .Text'尋找。 – Rab

回答

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... 
     } 
    } 
} 
+0

感謝您的代碼,它爲我的標籤和隱藏領域工作。出於某種原因,我無法使它與TextBox一起工作。 'TextBox gqL =(TextBox)WOListView.Items [i] .FindControl(「GOOD_QTY」)'我在嘗試使用'string gq = gqL.Text時遇到對象引用錯誤''爲什麼只發生文本框? – JasonD

+0

劃痕的問題,我得到它的工作......我打電話給一個不正確的變量名稱。謝謝! – JasonD

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」。它可能是一種不同的控制。