2013-05-21 11 views
7

Umieściłem zegar i etykietę do wyświetlania czasu odliczania w panelu aktualizacji. Umieściłem następny przycisk do wyświetlenia następnego pytania poza panelem aktualizacji.Przycisk nie działa z panelem aktualizacji

Mój problem polega na tym, że kliknięcie przycisku nie działa z panelem aktualizacji. Bez użycia panelu aktualizacji i timera działa dobrze. Jak mogę rozwiązać problem?

Próbowałem również umieścić całe narzędzia wewnątrz panelu aktualizacji. To mi nie pomogło.

Oto mój kod:

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 
    <table class="style1"> 
     <tr> 
      <td class="style2"> 
       <asp:Timer ID="Timer1" runat="server" Interval="1000" ontick="Timer1_Tick"> 
       </asp:Timer> 
       <asp:Label ID="lblTimer" runat="server"></asp:Label> 
     </tr> 
     <tr> 
      <td style="margin-left: 40px" class="style3"> 
       <asp:Label ID="lblQuestion" runat="server"></asp:Label> 
      </td> 
     </tr> 
     </table> 
     </ContentTemplate> 
       </asp:UpdatePanel> 
     <table> 
     <tr> 
      <td style="margin-left: 40px" class="style2"> 
       <asp:RadioButtonList ID="rblOptions" runat="server"> 
       </asp:RadioButtonList> 
      </td> 
     </tr> 
     <tr> 
      <td style="margin-left: 40px" class="style2"> 
       <table class="style1"> 
        <tr> 
         <td class="style2"> 
          <asp:Button ID="btnNext" runat="server" onclick="btnNext_Click" Text="Next" 
            Width="75px" /> 
         </td> 
         <td> 

          <asp:Button ID="btnFinish" runat="server" onclick="btnFinish_Click" 
           Text="Finish" Width="75px" /> 
         </td> 
        </tr> 
        <tr> 
         <td class="style2"> 
          &nbsp;</td> 
         <td> 
         <asp:Label ID="lblScore" runat="server">Score : </asp:Label> 
         </td> 
        </tr> 
       </table> 
      </td> 
     </tr> 
    </table> 
<asp:UpdatePanel> 

I dodaje następujący kod.

<Triggers> 
<asp:AsyncPostBackTrigger ControlID="btnNext" EventName="Click"/> 
</Triggers> 

Nadal to nie zadziałało. Czy możesz mi pomóc ...

Wybór przycisku radiowego jest automatycznie czyszczony podczas korzystania z panelu aktualizacji. Jakaś pomoc....?

Dziękuję ....

+2

Co masz na myśli mówiąc "nie działa", czy w ogóle powoduje odświeżenie wiadomości? – Serge

+0

Czy wystąpił jakiś wyjątek lub błąd? –

+1

Czy właśnie próbowałeś dodać AutoPostBack = "true" do kontrolera ""? –

Odpowiedz

2

Jeśli używasz stronę główną, a następnie dodać ten kod w przypadku obciążenia jesteś strona

using AjaxControlToolkit; 

ToolkitScriptManager objScriptManager = (ToolkitScriptManager)this.Master.FindControl("ScriptManager1"); 
    objScriptManager.AsyncPostBackTimeout = 36000; 

.... ..........

+0

dziękuję dostałem to dodając 'using AjaxControlToolkit;' w moim zdarzeniu ładowania strony. –

2

Dodaj

<Triggers>  
     <asp:PostBackTrigger ControlID="btnNext" /> 
     </Triggers> 

i dodać Ajaxtoolkit do projektu ... a potem po prostu dać link poniżej po <% @ Page .........%>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %> 

również dodać następujący kod w tagu formularza.

<asp:ScriptManager ID="ScriptManager1" runat="server"> 
    </asp:ScriptManager> 

To rozwiąże twój problem.

7

Twoje UpdatePanel jest źle sformułowane. Masz jeden dodatkowy znacznik asp: UpdatePanel w znacznikach.

Użyj tego zamiast:

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 
     <table class="style1"> 
      <tr> 
       <td class="style2"> 
        <asp:Timer ID="Timer1" runat="server" Interval="1000" ontick="Timer1_Tick"> 
        </asp:Timer> 
        <asp:Label ID="lblTimer" runat="server"></asp:Label> 
       </td> 
      </tr> 
      <tr> 
       <td style="margin-left: 40px" class="style3"> 
        <asp:Label ID="lblQuestion" runat="server"></asp:Label> 
       </td> 
      </tr> 
     </table> 
     <table> 
      <tr> 
       <td style="margin-left: 40px" class="style2"> 
        <asp:RadioButtonList ID="rblOptions" runat="server"> 
        </asp:RadioButtonList> 
       </td> 
      </tr> 
      <tr> 
       <td style="margin-left: 40px" class="style2"> 
        <table class="style1"> 
         <tr> 
          <td class="style2"> 
           <asp:Button ID="btnNext" runat="server" onclick="btnNext_Click" Text="Next" Width="75px" /> 
          </td> 
          <td> 
           <asp:Button ID="btnFinish" runat="server" onclick="btnFinish_Click" Text="Finish" Width="75px" /> 
          </td> 
         </tr> 
         <tr> 
          <td class="style2"> 
           &nbsp;</td> 
          <td> 
           <asp:Label ID="lblScore" runat="server">Score : </asp:Label> 
          </td> 
         </tr> 
        </table> 
       </td> 
      </tr> 
     </table> 
    </ContentTemplate> 
<asp:UpdatePanel> 
1

Musisz zarejestrować przycisk Dalej, aby zaktualizować panelu. za rejestrację trzeba użyć <asp:asyncpostbacktrigger xmlns:asp="#unknown"> wewnątrz UpdatePanel

tj

<updatepanel> 
    <contenttemplate> 
     ... body ...... 
    </contenttemplate> 

    <triggers> 
    <asp:asyncpostbacktrigger controlid="btnNext" eventname="Click" /> 
    </triggers> 
<updatepanel></updatepanel></updatepanel> 
+0

rejestrowanie przycisku NEXT do aktualizacji również pomaga mi rozwiązać problem. masz mój +100. –

2

Musisz umieścić przycisk aktualizacji panelem to będzie działać dobrze

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
     <ContentTemplate> 
     <table class="style1"> 
      <tr> 
       <td class="style2"> 
        <asp:Timer ID="Timer1" runat="server" Interval="1000" ontick="Timer1_Tick"> 
        </asp:Timer> 
        <asp:Label ID="lblTimer" runat="server"></asp:Label> 
      </tr> 
      <tr> 
       <td style="margin-left: 40px" class="style3"> 
        <asp:Label ID="lblQuestion" runat="server"></asp:Label> 
       </td> 
      </tr> 
      </table> 

      <table> 
      <tr> 
       <td style="margin-left: 40px" class="style2"> 
        <asp:RadioButtonList ID="rblOptions" runat="server"> 
        </asp:RadioButtonList> 
       </td> 
      </tr> 
      <tr> 
       <td style="margin-left: 40px" class="style2"> 
        <table class="style1"> 
         <tr> 
          <td class="style2"> 
           <asp:Button ID="btnNext" runat="server" onclick="btnNext_Click" Text="Next" 
             Width="75px" /> 
          </td> 
          <td> 

           <asp:Button ID="btnFinish" runat="server" onclick="btnFinish_Click" 
            Text="Finish" Width="75px" /> 
          </td> 
         </tr> 
         <tr> 
          <td class="style2"> 
           &nbsp;</td> 
          <td> 
          <asp:Label ID="lblScore" runat="server">Score : </asp:Label> 
          </td> 
         </tr> 
        </table> 
       </td> 
      </tr> 
     </table> 
</ContentTemplate> 
        </asp:UpdatePanel> 
3

Wydaje się, że są niedopasowane znaczniki. Po poprawieniu i ponownie przejrzyj układ. Zamiast korzystać z biblioteki AjaxToolkit, uruchom z wtyczkami nawigacyjnymi jquery, możesz poczuć się lepiej.

0

Jeśli na stronie występuje błąd sprawdzania poprawności (uwzględnij ukryte błędy: okno dialogowe modalne). Kliknięcie zdarzenia nie działa. Taca ustawić inną grupę walidacji przycisku (ES: validationGroup = "XXX")

<asp:Button ID="btnFinish" validationGroup="none" runat="server" onclick="btnFinish_Click" Text="Finish" /> 

nadzieję, że to pomaga.

Powiązane problemy