2011-11-08 34 views
0

我當前將一些值傳遞給我的一個ascx.cs文件,並根據發送的值顯示某些單選按鈕。單選按鈕被實例化在事物的的.ascx側:總是選擇頂部(有條件)單選按鈕

<asp:RadioButton ID="length5yr" GroupName="SubLength" runat="server" Visible ="false" 
      /> 
      <asp:label runat="server" id="Label5yr" Visible="false" style="width: 300px"> 
      </asp:label> 


      <asp:RadioButton ID="length3yr" GroupName="SubLength" runat="server" Visible ="false" 
      /> 
      <asp:label runat="server" id="Label3yr" Visible="false" style="width: 300px"> 
      </asp:label> 


    <asp:RadioButton ID="length2yr" GroupName="SubLength" runat="server" Visible ="false" 
      /> 
      <asp:label runat="server" id="Labelyr2" Visible="false" style="width: 300px"> 
      </asp:label> 


    <asp:RadioButton ID="length1yr" GroupName="SubLength" runat="server" Visible ="false" 
      /> 
      <asp:label runat="server" id="Label1yr" Visible="false" style="width: 300px"> 

      </asp:label> 

    <asp:RadioButton ID="lengthQuarterly" GroupName="SubLength" runat="server" Visible ="false" 
      /> 
      <asp:label runat="server" id="labelQuarterly" Visible="false" style="width: 300px"> 
      </asp:label> 

    <asp:RadioButton ID="lengthMonthly" GroupName="SubLength" runat="server" Visible ="false" 
      /> 
      <asp:label runat="server" id="labelMonthly" Visible="false" style="width: 300px"> 
      </asp:label> 

欲取其單選按鈕最終被第一/頂部的一個顯示進行檢查。我已經能夠得到最後一個單選按鈕(這也給我其他問題無論如何) - 但我怎麼能得到最高的一個檢查!?

這是我如何確定顯示哪個單選按鈕的代碼 - 我只顯示了一個選項,只是爲了使代碼更易於閱讀。

foreach (Dictionary<string, string> d in orderOptions) 
     { 
      if (d["length"] == "one") 
      { 
       length1yr.Visible = true; 
       price1yr = d["price"]; 
       rate1yr = d["rate"]; 
       issues1yr = d["issues"]; 
       premium1yr = d["premium"]; 
       Label1yr.Text = d["description"] + "<br><br>"; 
       Label1yr.Visible = true; 
       SubLength1yr = "1 year"; 

      } 
+0

你是如何創建單選按鈕的?動態還是他們都在那裏,只是基於一些標準隱藏? – arb

+0

AH,他們總是在那裏,只是基於標準隱藏。 –

+0

你想要客戶端解決方案的服務器端嗎?或者它沒有關係? – arb

回答

0

對於服務器端解決方案,最簡單的將是迭代的RadioButton列表,並使用一些簡單的LINQ選擇第一個可見的按鈕。

喜歡的東西:上面

var buttons = new []{length5yr, ...}; 
var firstVisibleButton = buttons.Where(b=>b.Visible).First(); 
firstVisibleButton.Checked = true; 

的可能是更僞代碼比什麼,但沒有一個完整的代碼示例,這就是我能做的。我相信你可以弄清楚細節。上述代碼必須在之後執行,您已隱藏/顯示RadioButton

我也許應該指定你創建(按鈕)列表必須按照該按鈕顯示該正常工作秩序。

+0

與此相關的問題是,當我選擇第一個單選按鈕下方的某個東西時,它不會將正確的數據傳遞到下一頁:/它始終傳遞附加到顯示的「第一個」單選按鈕的數據。 –

+0

我們在這裏談論什麼數據? –

+0

模糊 - 我知道。當有人點擊與這些單選按鈕位於同一頁面上的「提交」按鈕時,有一種方法可以運行。根據所選的單選按鈕,它會傳遞某些信息。所以當按鈕被按下的時候,如果radiobutton1.checked,它爲x,y和z變量設置了某些值,並且這些變量最終通過了。如果radiobutton2.checked,那些值將會不同。在這種情況下,單選按鈕2(例如)被選中,但它傳遞值,就好像單選按鈕1仍被選中一樣。 –