2013-02-20 4 views
2

Я пытаюсь заполнить выпадающий список при нажатии на переключатель. Нет проблем в первый раз, но во второй раз, когда я иду, он не работает. Это означает, что Quote работает при загрузке, применяет работу при нажатии, но, возвращаясь к цитате, ddl не обновляется. Есть идеи? Пожалуйста, будьте осторожны, новичок в этом.updatePanel not refreshing on radiobutton

<asp:UpdatePanel ID="updatePanelToggle" runat="server" UpdateMode="always"> 
    <ContentTemplate> 
     <asp:RadioButton ID="radioOn" Checked="true" AutoPostBack="true" runat="server" GroupName="toggle" Text="Quote" OnCheckedChanged="radioOn_CheckedChanged" /> 
     <asp:RadioButton ID="radioOff" AutoPostBack="true" runat="server" GroupName="toggle" Text="Apply" OnCheckedChanged="radioOff_CheckedChanged" /> 

     <asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList> 
    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="radioOn" /> 
     <asp:AsyncPostBackTrigger ControlID="radioOff" /> 

    </Triggers> 

</asp:UpdatePanel> 

код за

protected void Page_Load(object sender, EventArgs e) 
     { 
      if (!Page.IsPostBack) 
      { 
       loadQuoteURLs(); 
      } 
     } 

     protected void radioOn_CheckedChanged(object sender, EventArgs e) 
     {  
       loadQuoteURLs(); 
     } 

     protected void radioOff_CheckedChanged(object sender, EventArgs e) 
     { 
      loadApplyURLs(); 
     } 

     protected void loadApplyURLs() 
     { 

      DropDownList1.Items.Clear(); 
      DropDownList1.Items.Add("Apply"); 

     } 

     protected void loadQuoteURLs() 
     { 

      DropDownList1.Items.Clear(); 
      DropDownList1.Items.Add("Quote"); 

     } 
+0

Вероятно, это не ваша проблема, но: как вы закодированы вам не нужны триггеры и установить UpdateMode. –

+0

Возможный дубликат события [Radiobuttonlist не всегда срабатывает] (http://stackoverflow.com/questions/6098432/radiobuttonlist-event-not-always-firing) –

+0

Я попробую 2 в вашем случае, чтобы посмотреть, что работает. Сначала удалите триггер, потому что все переключатели готовы внутри панели обновления, и если это не работает, попробуйте обновить его вручную, используя 'UpdatePanelId.Update();'. Также вы можете попытаться удалить UpdatePanel, чтобы узнать, есть ли у вас какая-либо другая ошибка и не является ли панель обновления проблемой – Aristos

ответ

1

Я попробовал ваш код и работает отлично. В любом случае, вам не нужно указывать UpdateMode="always" и установить AsyncPostBackTriggers в этом случае:

<asp:UpdatePanel ID="updatePanelToggle" runat="server"> 
    <ContentTemplate> 
     <asp:RadioButton ID="radioOn" Checked="true" AutoPostBack="true" runat="server" GroupName="toggle" 
      Text="Quote" OnCheckedChanged="radioOn_CheckedChanged" /> 
     <asp:RadioButton ID="radioOff" AutoPostBack="true" runat="server" GroupName="toggle" 
      Text="Apply" OnCheckedChanged="radioOff_CheckedChanged" /> 
     <asp:DropDownList ID="DropDownList1" runat="server"> 
     </asp:DropDownList> 
    </ContentTemplate> 
</asp:UpdatePanel>