2012-07-30 83 views
0

我有下面的代碼:列表項選擇不工作

foreach (ListItem item in lstCreate.Items) 
{ 
    if (item.Selected) 
     strCreateNewVideoCategory += item.Value + ":0,"; 
    else 
     strCreateNewVideoCategory += item.Value + ":1,"; 
} 

我使用這個程序,item.Selected每次都是假的,甚至當我從列表中選擇一個項目的items.what我做錯錯誤?

注意:使用用戶控件(ascx)的ListItem。

+0

連接字符串在循環中是一種不好的做法。如果你的列表比較短,這裏可能不是一個嚴重的問題,但不管我認爲你習慣使用StringBuilder是一個好主意。 – 2012-07-30 12:04:03

回答

5
  1. 你必須用這個代碼嘗試結合

    if (!IsPostback) 
    { 
        BindYourControl(); 
    } 
    

    因爲你加載和綁定每次您發佈信息時你的控制,讓你刪除選定的值

  2. 使用的ViewState中爲了堅持下去。

    EnableViewState = true; 
    
+0

對不起,我每次頁面加載初始化控件。現在我更正了步驟:1其工作正常。謝謝 – karthik 2012-07-30 12:21:24

+0

我很樂意幫助你karthik – 2012-07-30 12:23:54

+0

我不明白這一點,何時何地使用BindYourControl() ;'?這是一個內置函數嗎? – 2013-03-08 06:04:23

0

代碼看起來沒什麼問題。你應該嘗試設置一個斷點來真正看到你出錯的地方。

0

檢查自動回事件頁面加載和選擇的項目使用

listitem_selectedindexchanged() 
{ 
} 

它會給你所選項目的價值

0

反正

foreach (ListItem item in lstCreate.Items) 
{ 
    str += item.Value + item.Selected ? ":0," : ":1,"; 
} 

或更好

str = String.Join(
    ",", 
    lstCreate.Items.Cast<ListItem>.Select(item => item.Value + item.Selected ? ":0" : ":1");