按钮不适用于更新面板

时间:2013-05-21 08:43:39

标签: c# javascript asp.net ajax web

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

我的问题是按钮单击不适用于更新面板。不使用更新面板和计时器,它运行良好。我该如何解决这个问题呢?

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

这是我的代码:

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

仍然没有用。你能帮帮我吗......

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

谢谢....

7 个答案:

答案 0 :(得分: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 :(得分:3)

似乎是无与伦比的标签。一旦纠正并再次通过布局。使用jquery导航插件而不是使用AjaxToolkit库,您可以感觉更好。

答案 2 :(得分:2)

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

中添加此代码
using AjaxControlToolkit;

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

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

答案 3 :(得分:2)

添加

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

并将Ajaxtoolkit添加到您的项目中...然后在&lt;%@ Page .........%&gt;之后给出以下链接。

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

还在表单标记中添加以下代码。

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

它将解决您的问题。

答案 4 :(得分:2)

您必须将Button置于更新面板中,然后才能正常工作

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

答案 5 :(得分:1)

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

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

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

答案 6 :(得分:0)

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

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

希望得到这个帮助。