0

网页允许用户在填写几个数据字段并从 ddl 选择 pdf 类型后下载/查看 pdf 文件,所以我遇到的问题是所有组件之后都有一个错误转发器,它显示错误,我无法清除值,因为回发不会发生。因此,如果我在打印 PDF 之前出现了错误,该错误将保留在转发器中,并且无法删除它。因为文件下载窗口出现时没有回发...

日期文本框

日期文本框

ddl

按钮

错误中继器

  protected void btnPrintPDF(object sender, EventArgs e)
        {

       if(DateTextbox'es !valid)
       {
          errors.add(new error);
       }
       if(ddl!selected)
       {
          errors.add(new error);
       }

       if(error.count==0){
         errors=null; //so if we had any errors before in the repeater,  
         errorRepeater=errors;//they Stay there and you can't delete them
         errorRepeater.databind();

         print.pdf(); //a download window jumps in browser killing postback
         //manually calling js postback from Codebehind doesn't work
}

protected void print.pdf(MemoryStream ms, string pdfName, string xslName)
        {
            ResourceContext xsltSert = new ResourceContext("/Path/xsl/" + xslName);
            Stream pdf;
            xsltSert.generatePdf(xmlInputStream: ms, pdf: out pdf);
            try
            {
                Response.ContentType = "application/pdf";
                HttpUtils.httpStream(Response, pdf, pdfName);
                Response.Close();
            }
            finally
            {
                pdf.Close();
            }
        }

到目前为止,唯一的解决方案是将验证(将 ontextchange 事件添加到 dataTextBoxe 的......)移动到 buttonClick 事件之外的函数,如果没有错误,那么在 buttonClick 中打印 pdf,la脚方式......

希望你能帮忙

贪婪

4

0 回答 0