2010-02-27 122 views
1

即時通訊在ASP.net中的單選按鈕列表,由於某種原因,當我選擇此項目時,不會讓我選擇單選按鈕列表中的第二項(索引1)選定的項目將返回到0(第一項)。當我調試代碼,看看選擇的項目是什麼,它顯示0由於某種原因,即使我按第二項(索引應該是1)ASP.Net單選按鈕列表問題

任何人都可以想到我可能會做錯什麼??

在Web表單側

我有這個

     <asp:RadioButtonList ID="RadioButtonList1" runat="server" OnSelectedIndexChanged="RadioButtonList1_SelectedIndexChanged" AutoPostBack="true"> 
         </asp:RadioButtonList> 

然後在劇本方面,單選按鈕,列表是通過一個數組會像這樣

for (i = 0; i < answersJArray[i].Length; i++) 
    { 
     RadioButtonList1.Items.Add(answersJArray[i].ToString()); 
    } 

回答

2

如果你能向我們展示一些你的代碼隱藏或者更徹底地描述你的過程和事件,這將是一件好事。我會說,你必須在加載頁面時按照某些標準對數據綁定列表的選擇進行數據綁定或初始化其選擇。

如果其中任何一個都是正確的,您需要插入!IsPostBack條件以確保您不會不必要地重新綁定控件或以編程方式重新指定其選定選項以覆蓋任何潛在事件。

+0

事情是,我有一個類似的代碼在一個原型項目iv一直在工作,它工作正常,另一件奇怪的事情是,我可以選擇列表中的第三項和第四項罰款。只有當我選擇第二個項目時,它將值設置回第一個項目由於某種原因! 任何想法?? – c11ada 2010-02-27 13:58:08

+0

@ c11ada:是的,我昨天幫助同事完成了這個確切的行爲。他不得不深入研究他的一些代碼,但他發現了一行代碼中的第二個選項。這最終導致JS回發代碼無法識別更改。 – 2010-02-27 14:13:16

+0

我的最後一個菜鳥錯誤,在更深入地查看我的代碼並查看正在轉儲到radiobuttonlist中的數據後,我發現前兩項具有相同的文本(12和12)...更改了第二個一到13,這解決了這個問題。我不知道文本對選定的索引有影響! 感謝您的幫助! – c11ada 2010-02-27 15:29:22

1

是的,你是填充在檢查數據之前重新綁定數據(因此選擇更改)。

什麼時候在頁面生命週期中檢查值?而且,當你執行數據綁定時呢?

這是最好的,如果你可以綁定標記(通過某種數據源,我通常使用ObjectDataSource,但無論什麼都可以)。

如果你不這樣做,當頁面處於「PostBack」模式時,你需要防止數據綁定,否則檢查值就太遲了。

0

我有同樣的問題。 我發現這是因爲listItem的值(兩個不同的listItem相同的值)。
listItemtextvalue構造:

  • text用於在頁面中顯示。
  • value用於 其他東西。

如果添加兩個具有相同值的ListItems,您將獲得該行爲:單擊某個項目時,將選擇第一個項目。