【问题标题】:Button inside content panel in content page can not call div from master page to be displayed内容页面内容面板内的按钮无法从母版页调用 div 来显示
【发布时间】:2016-12-06 03:01:27
【问题描述】:

在我的母版页中,我有一个 div“ErrorDiv”,我想从我的内容页面调用它来显示我的错误。问题是如果一个按钮包含在更新面板中,当我从后面的代码中调用它时,不会显示 div。我相信有一个技巧可以解决这个问题,感谢您的帮助。 以下是我的代码:

母版页:

<asp:Panel ID="pnlMainForm" runat="server">
 <form id="form1" runat="server" >
 <asp:Panel id="CommonPanelError" runat="server"  CssClass="alertMSG"    
  visible="false">
  <div id="ErrorDiv" class="ErrorBox" >
   <table>
    <tr style="vertical-align:top">
     <td><img src="../Images/Icons/error.png"  alt="" style="vertical-            
      align:middle" id="img2" runat="server" />&nbsp&nbsp </td>
     <td style="width:200px">
      <span style ="font-weight :bold ">ERROR</span><br />
      <asp:Label id="errorMsgBox" runat="server" > errorTest  
      </asp:Label> 
     </td>
     <td>&nbsp&nbsp&nbsp&nbsp <a href ="#"><img onclick="CloseMyErrorBox();"  
      id ="closeErrorBox" src="../Images/Icons/warning4.png"  alt=""      
      runat="server" /></a>
     </td>
    </tr>
   </table> 
  </div>
  </asp:Panel>
 </form>
</asp:Panel>          

内容页面:

<asp:UpdatePanel ID="UPAll" runat="server">
 <ContentTemplate>
  <asp:Panel ID="pnlInsuredID" runat="server">
   <asp:LinkButton ID="lnkBtnphyCode" runat="server">
    <asp:Image ID="Image3" runat="server" ImageUrl="~/images/BAL/go.gif" />
   </asp:LinkButton>
  </asp:Panel>   
 </ContentTemplate>
</asp:UpdatePanel>

我的内容页面背后的代码:

Protected Sub lnkBtnphyCode_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lnkBtnphyCode.Click

If Trim(txtPhysicianCode.Text) = "" Then
     Dim c As Panel = CType(Me.Master.FindControl("CommonPanelError"), Panel)
        If c IsNot Nothing Then
            c.Attributes.Add("display", "block")
        End If
     Dim c1 As Label = CType(Me.Master.FindControl("errorMsgBox"), Label)
     Dim str = c1.Text
     errDotNet(str)
else ...

注意:errDotNet 是一个提醒消息“str”的函数,在我们的例子中,它显示的是框内的消息“errorTest”。

【问题讨论】:

    标签: html asp.net updatepanel master-pages visibility


    【解决方案1】:

    您必须在 ContentTemplate 之后将触发器放在更新面板中

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

    它需要整页请求。因此,在页面加载中添加以下行:

    ScriptManager.GetCurrent(Me).RegisterPostBackControl(Me.YourControlID);
    

    【讨论】:

    • 你能补充一点解释吗? @GalaxMan
    • 我终于解决了这个问题。我发现为包含图像的链接按钮添加触发器不起作用。它应该是一个单独的asp按钮或链接按钮
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-24
    相关资源
    最近更新 更多