当我点击链接按钮xyz打开一个新窗口时,ASP.Net链接按钮打开页面x.ASP

ASP.Net LinkButton opens page page x.asp when i click on linkButton xyz to open a new window

本文关键字:ASP 按钮 链接 窗口 Net xyz 一个 新窗口      更新时间:2023-09-26

我有一个asp.net网页,里面有类似LinkButton的Comment|Email|Download|Print。

我使用jQuery在Ajax模式弹出菜单中打开Comment(Comment.asx)和Email(EmailArticle.aspx)表单。一切都很好,只是当我单击打印链接按钮时,它会以新窗口的形式打开页面,但在主页面上,它也会从PageXYZ.aspx移动到EmailArticle.aspx页面。

我不确定我检查过的代码出了什么问题,我可能会发现任何错误。我必须设置一些属性,这样当我点击下载或打印时,它会打开新闻窗口,但保持邮件页面的不变

JavaScript

<script type="text/javascript" >
    jQuery(document).ready(function () {
        //Load EMail Form
        $("#<%=pnlEmailArticleForm.ClientID %>").load("EmailArticle.aspx", function () {
        //alert("Email Form has been loaded successfully!")
        });
         //For printing
         function CallPrint() {
             window.open('PrintArticle.aspx?articleID=<%=Request["articleID"] %>', 'Email', 'width=690, height=650,left=100, top=100, location=no, menubar=no, resizable=no, scrollbars=no, status=no, toolbar=no,fullscreen=no');
         }
    </script>

Ajax模式弹出菜单的HTML代码

<asp:ModalPopupExtender ID="mpShowCommentPopUp" runat="server" TargetControlID="lnkBtnComment" PopupControlID="pnlComment"
 BackgroundCssClass="modalBackground" CancelControlID="imgBtnClose" RepositionMode="None"></asp:ModalPopupExtender>
     <asp:Panel ID="pnlComment" runat="server" BackColor="White" Height="490px" Width="520px" style="display:none">
         <div id="commentForm" class="commentForm">
            <div id="divClose" class="commentClose">
                <asp:ImageButton ID="imgBtnClose" runat="server" ImageUrl="~/images/close.png" onclick="imgBtnClose_Click" CausesValidation="False"  />
            </div>
            <!-- comment Form -->
            <asp:Panel ID="pnlCommentForm" runat="server" Visible="true">
            </asp:Panel>
            <!-- comment Form -->
        </div>
    </asp:Panel>
</div>
<div>
    <asp:ModalPopupExtender ID="mpShowEmailArticlePopup" runat="server" TargetControlID="lnkBtnEmail" PopupControlID="pnlEmailArticle"
     BackgroundCssClass="modalBackground" CancelControlID="imgBtnCloseEmailPopup" RepositionMode="None"></asp:ModalPopupExtender>
          <asp:Panel ID="pnlEmailArticle" runat="server" BackColor="White" Height="450px" Width="520px" >
             <div id="emailArticle" class="EmailArticleForm">
                 <div id="closeEmailArticle" class="commentClose">
                    <asp:ImageButton ID="imgBtnCloseEmailPopup" runat="server" ImageUrl="~/images/close.png" onclick="imgBtnCloseEmailPopup_Click" CausesValidation="False"  /> 
                 </div>
                 <!-- Email Form -->
                 <asp:Panel ID="pnlEmailArticleForm" runat="server" Visible="true">
                 </asp:Panel>
                 <!-- Email Form -->
                 </div>
        </asp:Panel>
</div>

HTML中的链接按钮代码

   <!-- Article Details Section footer -->
    <div id="divArticleDetailsFooter"  class="divArticleDetailsFooter">
    <div id="divlblComment" class="imgTArticleDetailsFooter">
    <asp:Image ID="imgComment" runat="server" ImageUrl="~/images/comment.png"  />
    <asp:LinkButton ID="lnkBtnComment" runat="server" onclick="lnkBtnComment_Click" 
CssClass="divArticleDetailsFooterLabels" CausesValidation="False" >Comment</asp:LinkButton>
    </div>
<div id="divlblEmail" class="imgTArticleDetailsFooter">
<asp:Image ID="imgEmail" runat="server" ImageUrl="~/images/email.png" />
<asp:LinkButton ID="lnkBtnEmail" runat="server" 
CssClass="divArticleDetailsFooterLabels" CausesValidation="False" >Email</asp:LinkButton>
</div>
<div id="divlblDownload" class="imgTArticleDetailsFooter">
<asp:Image ID="imgDownload" runat="server" ImageUrl="~/images/download.png" />
<asp:LinkButton ID="lnkBtnDownload" runat="server" 
CssClass="divArticleDetailsFooterLabels" CausesValidation="False" >Download</asp:LinkButton>
</div>
<div id="divlblPrint" class="imgTArticleDetailsFooter">
<asp:Image ID="imgPrint" runat="server" ImageUrl="~/images/print.png" />
<asp:LinkButton ID="lnkBtnPrint" runat="server" OnClientClick="CallPrint()" 
CssClass="divArticleDetailsFooterLabels" CausesValidation="False" >Print</asp:LinkButton>
</div>
</div>  
<!-- Article Details Section footer -->

代码背后的代码

protected void lnkBtnComment_Click(object sender, EventArgs e)
{
    this.mpShowCommentPopUp.Show();
}
protected void imgBtnClose_Click(object sender, ImageClickEventArgs e)
{
    this.mpShowCommentPopUp.Hide();
}
protected void imgBtnCloseEmailPopup_Click(object sender, ImageClickEventArgs e)
{
    this.mpShowEmailArticlePopup.Show();
}

语句return false;应用于防止锚点(链接)等元素的默认行为。当您在同样具有href属性的A标记上定义了onclick时,如果onclick代码没有明确返回false,则浏览器将继续执行href部分。

因此,我的猜测是,您的onclick处理程序启动了一个回发(因为它们是LinkButtons),可能正在服务器上执行其onclick事件,该事件旨在重定向到另一个页面(或其他一些通常执行的代码,您可以通过逐步了解这些代码)。

所以,尝试一下:将return false添加到您的CallPrint中。