2011-05-04 72 views
2

我在我的項目中遇到了一個新問題;Asp.net,C#從面板中選擇單選按鈕和標籤

我在我的頁面上使用純編程代碼添加標籤,單選按鈕和2個圖像按鈕(因爲標籤和單選按鈕的數量可能不同)上的面板。

我給每個單選按鈕一個特殊的ID,所以我知道它屬於哪個面板的內容。 現在最大的問題是我不知道如何從面板中獲取東西。

假設面板中充滿了標籤和單選按鈕(回答分數爲0-10的問題和單選按鈕的標籤),並按照問題評分每個問題,我如何從面板中選擇每個單選按鈕以及ID以'5'結尾並獲得它的價值?

面板的名稱= pnlMain

我的代碼:http://pastebin.com/gv8ycMY4

感謝 我希望你們能幫助我在這裏,因爲我真的被困在此我。

grtz, 尼科

+0

你用'runat =「server」'定義了你的控件嗎? – 2011-05-04 10:58:36

+0

@ Neil-Knight。他以編程方式添加它們,所以這不適用。 – 2011-05-04 11:06:55

+0

也許有一個屬性或某種我忘了添加時,我創建這些控件? – Nico 2011-05-04 13:57:48

回答

2

你可以通過面板上的控制itterate讓每個單選按鈕列表,然後通過itterate這些控件來獲取單選按鈕。

foreach (Control RBL in pnlMain.Controls) 
{ 
    if (RBL is RadioButtonList) 
    { 
     foreach (ListItem LI in (RBL as RadioButtonList).Items) 
     { 
      if (LI.Text.EndsWith("5") && LI.Selected) 
      { 
       // Do something with the radiobutton 
      } 
     } 
    } 
} 
+0

正是我在找的東西!謝謝vm! – Nico 2011-05-04 11:05:02

+0

@Nico。沒有問題,一定要將我的答案標記爲已接受的答案(點擊旁邊的勾號)。 – 2011-05-04 11:08:12

+0

你有沒有機會知道如何選擇所選的單選按鈕? – Nico 2011-05-04 11:18:41

0

最後找到答案;

如果你想保持這些動態控件回傳等後:

F.E.我,我用一個SelectedIndexChange來填補我的面板,動態控件。 我做了另一個名爲laden()的方法,我寫了我的代碼來顯示這些動態控件。 如果你想這些控件傳遞迴傳等只要把下面的代碼和平到Page_Load方法:

if (Page.IsPostBack) { 
     laden(); 
    } 

至極意味着,如果你得到一個回傳,它會回發後重新加載這些控件。 即使您將數據插入到選定的文本框或單選按鈕中,它仍會與回發之前相同,也不會丟失數據。

享受。