Распечатать отчет crystal после выполнения моего серверного кода?
Проблема заключается в том, чтобы распечатать отчет crystal с помощью iFrame. В следующем коде я вызвал функцию Print () в своем коде на стороне сервера.
После нажатия кнопки он показывает ошибку: Uncaught TypeError: не удается прочитать свойство 'contentWindow' undefined (...)".
Эта функция Print () отлично работает на стороне клиента. Как теперь получить решение для вызова функции javascript на стороне сервера для печати отчета Crystal?
Что я уже пробовал:
Код На Стороне Сервера
protected void btnSave_Click(object sender, EventArgs e) { // any code here // load the database in crystal report // now I want to preview my print report with crystal viewer ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "Notification", "Print();", true); }
Код На Стороне Клиента:
<div id="dvReport" class="col-md-12 col-sm-12 col-xs-12"> <cr:crystalreportviewer id="CrystalReportViewer1" runat="server" width="600px" height="400px" autodatabind="true" bestfitpage="False" hastogglegrouptreebutton="False" hastoggleparameterpanelbutton="False" toolpanelview="None" enabledrilldown="False" printmode="Pdf"> </div>
<script> function Print() { var dvReceiptReport = document.getElementById("dvReport"); var frame1 = dvReceiptReport.getElementsByTagName("iframe")[0]; var frameDoc = frame1.contentWindow ? frame1.contentWindow : frame1.contentDocument.document ? frame1.contentDocument.document : frame1.contentDocument; frameDoc.print(); } </script>
j snooze
очевидно, что вам не хватает публикации какого-то кода здесь, потому что у вас нигде нет ничего с именем "iframe" в вашем html. Таким образом, при попытке getElementsByTagName("iframe") и установить его в свою объектную переменную frame1. Его значение null или nothing означает, что вы не можете получить доступ к свойству или методу из нулевого или пустого объекта.