2012-02-24 46 views
1

我有一個列表視圖與多列。其中一列是複選框,另一列是標籤。還有其他的欄目,但它們與這個問題並不相關。在此頁面上按鈕的點擊事件中,如果選中與其相鄰的複選框,我想讀取該標籤的值。我如何閱讀標籤內容?如果選中複選框,我如何獲取標籤的內容?

我到目前爲止的代碼包含在下面。該代碼運行,但複選框的檢查狀態從未被發現被檢查。我檢查了itemTemplate以確認名稱,並確保此問題不是由於拼寫錯誤造成的。

 CheckBox chkSelected; 
     List<int> selectedIds = new List<int>(); 


     foreach (var x in lvPeople.Items) 
     { 
      chkSelected = (CheckBox)x.FindControl("IsAlumni"); 

      if (chkSelected.Checked) 
      { 
       int id = (int)lvPeople.DataKeys[x.DisplayIndex].Value;      

       selectedIds.Add(id); 
      } 
     } 
+0

什麼是你的標籤的ID? – 2012-02-24 21:21:09

+0

您正在尋找一個名爲「IsAlumni」的單一控件多次? – atoMerz 2012-02-24 21:21:50

+0

@Leniel - lblContactId – Joe 2012-02-24 21:22:31

回答

1

你會是這樣的:

foreach (var x in lvPeople.Items) 
{ 
    chkSelected = (CheckBox)x.FindControl("IsAlumni"); 

    if (chkSelected.Checked) 
    { 
     int id = (int)lvPeople.DataKeys[x.DisplayIndex].Value; 

     var myLabel = (Label)x.FindControl("lblContactId"); 
     var myLabelContent = myLabel.Text;     

     selectedIds.Add(id); 
    } 
} 

例如,在所選擇的項目的事件,你可以有這樣的代碼:

CheckBox chkSelected = 
      lvPeople.Items(lvPeople.SelectedIndex).FindControl("IsAlumni") as CheckBox; 
+0

不是標籤只是呈現爲跨度,因爲它們不是輸入控件像一個文本框?根據我的經驗,在回發中,您永遠不會從標籤中獲得價值。您必須將文本加載到文本框中,然後執行var myTxt =(TextBox)x.FindControl(「txtContactID」); – paparush 2012-02-25 04:02:46

相關問題