微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Javascript 的 ASP.NET 自定义打印不检索 DropDownList 值

如何解决使用 Javascript 的 ASP.NET 自定义打印不检索 DropDownList 值

我们在 aspx 页面上有一个自定义打印按钮。 该按钮使用以下代码打开带有打印对话框的新页面。除了包含大量项目的下拉列表外,所有元素都在打印预览中正确显示。其他下拉列表选择的值显示正确,但只有 5-6 个项目。

但是如果我 print->cancel->print ,第二次显示预览打印页面时,下拉选择的值显示正确。 Ctr+P 也可以正常工作,但它会打印整个页面(不是必需的)。 这个问题对于 chrome/firefox/edge 是一样的

    <script type="text/javascript">
                function CallPrint(strid) {
                     var WinPrint = window.open('',"",'width=1500,height=1500');
                     var prtContent = document.getElementById(strid);
                         WinPrint.document.write(prtContent.innerHTML);
                         WinPrint.document.write('<link rel=stylesheet href=StyleSheet.css>')
                         WinPrint.document.close();
                      WinPrint.onload = function () { // wait until all resources loaded 
                      WinPrint.focus();
                      WinPrint.print();  
                      WinPrint.close();
                };    
                     setTimeout(window.close,500);
                return true;
            }
       </script>

aspx 的一部分

 <div id="print">  ......
                    <td class="auto-style162">
                        <ajaxToolkit:ComboBox ID="dd_aj" runat="server" AutoCompleteMode="Suggest" DataSourceID="sql_aj" DataTextField="Job_No" DataValueField="Job_Key" DropDownStyle="DropDownList" MaxLength="0" Style="display: inline;">
                        </ajaxToolkit:ComboBox>
                    </td> .....
<asp:Button ID="BtnPrint" runat="server" Text="Print" OnClientClick="javascript:CallPrint('print');" CssClass="alert info" />
  </div>

与标准(非 ajaxtoolkit)下拉列表相同的结果。

我知道使用 CSS Media 打印,但我们现在不能使用它。

我尝试使用 setTimeout 并查看了此处的其他线程,例如 asp.net Printing Page using javascript

我怀疑由于下拉列表中有很多项目,所以渲染时间太长。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。