在 Web 表单中进行验证后执行 JavaScript 打印 asp.net

本文关键字:JavaScript 执行 打印 asp net 验证 表单 Web | 更新日期: 2023-09-27 18:36:47

我有一个 asp.net 3.5 Web 表单,我正在使用多个服务器端验证器控件,我希望在页面验证后,用于打印的 javascript 代码在提交按钮单击事件处理程序时触发

我尝试使用OnClientClick,但即使页面无效,这甚至会触发打印页面javascript,

我将如何做到这一点,打印仅在表单有效时才显示?

这是我的代码,提前感谢

    <asp:Button ID="btnAction" runat="server" OnClick="btnAction_Click"
    Text="Submit" />
    protected void btnAction_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                // define SMTP client
                SmtpClient smtp = new SmtpClient();

                //create the mail message
                MailMessage message = new MailMessage();
                //From address will be given as a MailAddress Object
                //To address collection of MailAddress
                message.To.Add("########");
                //CC and BCC optional
                //message.CC.Add("");
                // Change to false to not include HTML
                message.IsBodyHtml = true;
                message.Body += "<h2>info goes here</h2></br></br>";
                //send the message
                try
                {
                    smtp.Send(message);
                }
                catch (System.Net.Mail.SmtpException ex)
                {
                    throw new Exception(ex.Message.ToString());
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message.ToString());
                }


                Page.ClientScript.RegisterStartupScript(this.GetType(),
    "OnPrintPage", "window.print();", true);
                  Response.Redirect("Confirmation.aspx?value=" +
    Server.UrlEncode(confirmationNumber));
                //Passing in session
                //Session["sessionname"] = confirmationNumber;

            }
            //End if Page is Valid Block

        }

在 Web 表单中进行验证后执行 JavaScript 打印 asp.net

在打印命令之前检查 JavaScript 函数中的Page_IsValid。

function PrintDocument()
{
    if (Page_IsValid) {
        // call your print function here....
      }
     else
     {
         // page is not validated.
     }
}
那么,

您是否希望在验证页面时显示"打印"按钮?㞖:

您不能使用 OnClientClick 创建另一个服务器端按钮来触发打印操作。此按钮可以在上述代码中的验证时可见。