2013-05-21 37 views
7

我已经在更新面板中放置了一个定时器和一个用于显示倒计时时间的标签。我已经放置了下一个按钮,用于在更新面板外显示下一个问题。按钮不适用于更新面板

我的问题是按钮点击不能与更新面板一起使用。没有使用更新面板和计时器,它运作良好。我该如何解决这个问题?

我也尝试在整个更新面板中放置整个工具。它没有帮助我。

这里是我的代码:

<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> 

添加以下代码。

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

它仍然没有工作。你能帮我...

当使用更新面板时,单选按钮的选择会自动清除。任何帮助....?

谢谢....

+2

你是什么意思“不工作”,它是否会导致任何回发? – Serge

+0

是否有任何异常或错误? –

+1

您刚刚尝试将AutoPostBack =“true”添加到您的控制器“”吗? –

回答

2

如果您使用的母版页,然后在你的页面加载事件

using AjaxControlToolkit; 

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

添加以下代码.... ..........

+0

谢谢我通过在我的页面加载事件中添加'使用AjaxControlToolkit;'得到它。 –

2

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

,并添加Ajaxtoolkit到您的项目......然后就在下面链接后<%@ .........页%>

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

也在你的表单标签中添加以下代码。

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

它会解决你的问题。

7

您的UpdatePanel格式不正确。标记中有一个额外的asp:UpdatePanel标记。

使用这个代替:

<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

您需要注册NEXT按钮更新面板。注册需要使用<asp:asyncpostbacktrigger xmlns:asp="#unknown">的UpdatePanel内

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

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

注册NEXT按钮更新面板也可以帮助我解决我的问题。你有我的+100。 –

2

必须放在更新潘内尔的按钮,然后它会正常工作

<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

似乎是无可匹敌的标签。一旦正确,再次通过布局。而不是使用AjaxToolkit库,运行jQuery导航插件,你可以感觉更好。

0

如果在页面中存在验证错误(包括隐藏错误es:模式对话框)。 事件点击不起作用。 托盘到一个不同的验证组设置为按钮(ES:=的ValidationGroup “XXX”)

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

希望这帮助。

相关问题