2014-05-07 75 views
0

嗨,我有一个asp updatePanel,其中包含几个asp面板。它应该起作用的方式是在第一个面板中单击按钮,它隐藏该面板并显示下一个面板。这很好,问题出现在下一个面板中。如果我尝试使用该面板中的任一按钮控件,则不会发生任何事情。为什么我的asp更新面板只刷新一次

继承人的HTML

<asp:UpdatePanel runat="server" ChildrenAsTriggers="true"> 
      <ContentTemplate> 
       <asp:Panel ID="pnlAppRej" runat="server" HorizontalAlign="Center" CssClass="textBox" 
        Width="85%" Visible="True"> 
        <div style="text-align:left; width:90%"> 
         <asp:Label ID="lblAppRej" runat="server" Text="Label"></asp:Label> 
        </div> 
        <asp:Button ID="btnApprove" runat="server" Text="Approve" CssClass="button" Style="margin-right: 20px; 
         margin-top: 10px" Width="100px" onclick="btnApprove_Click" /> 
        <asp:Button ID="btnReject" runat="server" CssClass="button" Text="Reject" Style="margin-left: 20px" 
         Width="100px" onclick="btnReject_Click" /> 
       </asp:Panel> 
       <asp:Panel runat="server" ID="pnlRejCom" Width="85%" Visible="False" CssClass="textBox"> 
        <div style="text-align: left"> 
         Comments<br /> 
        </div> 
        <asp:TextBox ID="tbRejCom" runat="server" Height="54px" TextMode="MultiLine" Width="95%" 
         CssClass="textBox" Style="margin-top: 5px" ValidationGroup="rejCom"></asp:TextBox> 
        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="tbRejCom" 
         ErrorMessage="RequiredFieldValidator" ValidationGroup="rejCom">*</asp:RequiredFieldValidator> 
        <br /> 
        <div style="text-align: center"> 
         <asp:Button ID="btnBackRejCom" runat="server" CssClass="button" Text="Back" Style="margin-right: 20px; 
          margin-top: 10px" Width="100px" /> 
         <asp:Button ID="btnDoneRejCom" runat="server" CssClass="button" Text="Done" Style="margin-left: 20px; 
          margin-top: 10px" Width="100px" ValidationGroup="rejCom" 
          onclick="btnDoneRejCom_Click" /> 
        </div> 
       </asp:Panel> 
      </ContentTemplate> 
     </asp:UpdatePanel> 

C#代码

protected void btnReject_Click(object sender, EventArgs e) 
    { 
     pnlRejCom.Visible = true; 
     pnlAppRej.Visible = false; 
    } 
    protected void btnBackRejCom_Click(object sender, EventArgs e) 
    { 
     pnlRejCom.Visible = false; 
     pnlAppRej.Visible = true; 
    } 

其btnBackRejCom_Click方法,它似乎不火。但我已经测试将pnlRejCom设置为可见,并且该方法正常工作。

在此先感谢

查理

+0

尝试使用作为按钮 –

+0

我不认为如果将ChildrenAsTriggers属性设置为true,这会有什么区别? – Charlie

回答

1

你的问题似乎有所不同。 我会建议,删除

protected void btnBackRejCom_Click(object sender, EventArgs e){} 

并再次创建一个新的事件。

这是我试过,现在工作正常。背后

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
       <Triggers> 
        <asp:PostBackTrigger ControlID="btnReject" /> 
        <asp:AsyncPostBackTrigger ControlID="btnBackRejCom" /> 
        <asp:PostBackTrigger ControlID="btnDoneRejCom" /> 
       </Triggers> 
       <ContentTemplate> 
        <asp:Panel ID="pnlAppRej" runat="server" HorizontalAlign="Center" CssClass="textBox" 
         Width="85%" Visible="True"> 
         <div style="text-align: left; width: 90%"> 
          <asp:Label ID="lblAppRej" runat="server" Text="Label"></asp:Label> 
         </div> 
         <asp:Button ID="btnApprove" runat="server" Text="Approve" CssClass="button" Style="margin-right: 20px; margin-top: 10px" 
          Width="100px" OnClick="btnApprove_Click" /> 
         <asp:Button ID="btnReject" runat="server" CssClass="button" Text="Reject" Style="margin-left: 20px" 
          Width="100px" OnClick="btnReject_Click" /> 
        </asp:Panel> 
        <asp:Panel runat="server" ID="pnlRejCom" Width="85%" Visible="False" CssClass="textBox"> 
         <div style="text-align: left"> 
          Comments<br /> 
         </div> 
         <asp:TextBox ID="tbRejCom" runat="server" Height="54px" TextMode="MultiLine" Width="95%" 
          CssClass="textBox" Style="margin-top: 5px" ValidationGroup="rejCom"></asp:TextBox> 
         <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="tbRejCom" 
          ErrorMessage="RequiredFieldValidator" ValidationGroup="rejCom">*</asp:RequiredFieldValidator> 
         <br /> 
         <div style="text-align: center"> 
          <asp:Button ID="btnBackRejCom" runat="server" CssClass="button" Text="Back" Style="margin-right: 20px; margin-top: 10px" 
           Width="100px" OnClick="btnBackRejCom_Click1" /> 
          <asp:Button ID="btnDoneRejCom" runat="server" CssClass="button" Text="Done" Style="margin-left: 20px; margin-top: 10px" 
           Width="100px" ValidationGroup="rejCom" 
           OnClick="btnDoneRejCom_Click" /> 
         </div> 
        </asp:Panel> 
       </ContentTemplate> 
      </asp:UpdatePanel> 

代码:

protected void btnBackRejCom_Click1(object sender, EventArgs e) 
    { 
     pnlRejCom.Visible = false; 
     pnlAppRej.Visible = true; 
    } 

希望这有助于。快乐编码.. !!!

+0

将所有控件设置为PostBackTrigger完美地工作谢谢 – Charlie

+0

不客气:) –

0

我有,所以我刚才添加的CausesValidation =“假”,那么它工作正常me.so请btnBackRejCom按钮添加的CausesValidation像如下

同样的问题

请尝试

<asp:Button ID="btnBackRejCom" runat="server" CausesValidation="False" CssClass="button" Text="Back" Style="margin-right: 20px; 
          margin-top: 10px" Width="100px" /> 

我觉得这对你的作品:)