2010-08-10 48 views
0

我有一個表單元格,其中有RadioButtonList。當選擇每個項目時,SelectedIndexChanged事件應該觸發,以便應用程序可以填充相關列表框。問題是它停止工作。現在,如果我選擇了第一項「分區」,該事件從不會發生。我在事件處理程序中放置了一個斷點,併爲其他條目調用它,但不是爲Division調用。如果其他代碼干擾我會相信,我只是不知道從哪裏開始尋找。RadioButtonList中的項目未觸發SelectedIndexChanged

[更新] 由於不工作,我的意思是如果您選擇項目#2,則更新有效;那麼如果你選擇項目#1它不。如果我更改了「分部」項目出現在列表中的位置,它仍然存在問題。頁面加載循環中是否有可能會中止事件處理鏈的內容?

private TableCell foo()  
{ 
hierarchyLevel = new RadioButtonList(); 

ListItem DivisionItem = new ListItem(); 
DivisionItem.Text = "Division"; 
DivisionItem.Value = "afe_dvsn";   
hierarchyLevel.Items.Add(DivisionItem); 

ListItem DistrictItem = new ListItem(); 
DistrictItem.Text = "District"; 
DistrictItem.Value = "afe_dist"; 
hierarchyLevel.Items.Add(DistrictItem); 

ListItem AreaItem = new ListItem(); 
AreaItem.Text = "Area"; 
AreaItem.Value = "afe_supt"; 
hierarchyLevel.Items.Add(AreaItem); 

ListItem ForemanItem = new ListItem(); 
ForemanItem.Text = "Foreman"; 
ForemanItem.Value = "afe_frmn"; 
hierarchyLevel.Items.Add(ForemanItem); 

ListItem AfeCodeItem = new ListItem(); 
AfeCodeItem.Text = "AFE Code"; 
AfeCodeItem.Value = "afe_code"; 
hierarchyLevel.Items.Add(AfeCodeItem); 

ListItem PropertyItem = new ListItem(); 
PropertyItem.Text = "Property"; 
PropertyItem.Value = "prop_sub"; 
hierarchyLevel.Items.Add(PropertyItem); 

TableCell cellforHierarchyLevel = new TableCell(); 
cellforHierarchyLevel.ID = "hierarchyLevel"; 
cellforHierarchyLevel.Controls.Add(hierarchyLevel); 

hierarchyLevel.EnableViewState = true; 

hierarchyLevel.AutoPostBack = true; 

hierarchyLevel.SelectedIndexChanged += new EventHandler(hierarchyLevel_SelectedIndexChanged); 

return cellforHierarchyLevel; 
} 

回答

0

有一個例外,正在從默默的CreateChildControls拋出()。這中斷了對事件處理程序的調用,這看起來像事件處理程序沒有被調用。當我修復異常時,事件處理正常。

0

它可能是因爲默認SelectedIndex是0,所以選擇第一個單選按鈕,在SelectedIndex實際上並沒有改變(因爲第一個單選按鈕將索引0)。

您可以只用做選擇第一個單選按鈕編程:

rbcohortList.SelectedIndex = 0; 

您已經添加單選按鈕列表後。

+0

這可以通過將除第一個以外的ListItem設置爲選定值來證明。然後選擇列表中的第一個項目將觸發更改事件。雖然如果頁面第一次加載時沒有選擇單選按鈕,我不明白爲什麼更改事件不會觸發...... – Jeremy 2010-08-10 19:01:09

+0

對,沒有提供默認SelectedIndex的事實意味着當第一個選項是選擇,事件不會因爲索引確實,沒有改變。 – SwDevMan81 2010-08-10 19:04:47

0

它是否適用於您選擇不是第一個項目,然後選擇Division項目?

嘗試設置SelectedIndex-1添加最後一個項目之後(即前TableCell cellforHierarchyLevel = new TableCell();線)

相關問題