• 关于MVC打印问题,打印指定的内容


    首先你的内容一定要放在一个div中如下代码

       <div id="divprint">
                        <table class="table table-striped dataTable table-bordered" id="DataTables_Table_0" aria-describedby="DataTables_Table_0_info">
                            <thead>
                                <tr role="row">
                                    <th class="sorting_asc" role="columnheader" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" aria-sort="ascending" aria-label="Rendering engine: activate to sort column descending" style=" 140px;">用户名ID</th>
                                    <th class="sorting" role="columnheader" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending" style=" 180px;">用户名</th>
                                    <th class="sorting" role="columnheader" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" aria-label="Platform(s): activate to sort column ascending" style=" 160px;">电话</th>
                                    <th class="sorting" role="columnheader" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" aria-label="Engine version: activate to sort column ascending" style=" 140px;">真实姓名</th>
                                    <th class="sorting" role="columnheader" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" aria-label="CSS grade: activate to sort column ascending" style=" 140px;">工号</th>
                                    <th class="sorting" role="columnheader" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" aria-label="CSS grade: activate to sort column ascending" style=" 167px;">拥有角色</th>
                                </tr>
                            </thead>
    
                            <tbody role="alert" aria-live="polite" aria-relevant="all">
                                @foreach (var item in Model.EntityList)
                                {
                                    <tr>
                                        <td class=" sorting_1">@item.OneUser.Uid</td>
                                        <td class=" ">@item.OneUser.UserName</td>
                                        <td class=" ">@item.OneUser.Tel</td>
                                        <td class=" ">@item.OneUser.TrueName</td>
                                        <td class=" ">@item.OneUser.WorkNo</td>
                                        <td class=" ">
                                            @if (item.HasRole!=null&&item.HasRole.Count>0)
                                            {
                                                foreach (var name in item.HasRole)
                                                {
                                                    <p>@name</p>
                                                }
                                            }
                                        </td>
                                    </tr>
                                }
    
                                <tr class="odd">
                                    <td class=" sorting_1">Gecko</td>
                                    <td class=" ">Firefox 1.0</td>
                                    <td class=" ">Win 98+ / OSX.2+</td>
                                    <td class=" ">1.7</td>
                                    <td class=" ">A</td>
                                </tr>
                                <tr class="even">
                                    <td class=" sorting_1">Gecko</td>
                                    <td class=" ">Firefox 1.5</td>
                                    <td class=" ">Win 98+ / OSX.2+</td>
                                    <td class=" ">1.8</td>
                                    <td class=" ">A</td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                  <input type="button" id="btndy" value="打印" />

    然后我们看JS代码部分:(注意:因为这里部分打印损坏了HTML代码结构,所以不管你打不打印都要重新加载当前页面,这里我们用window.location.href="/Account/UserManagerMent";或window.reload();

            $(function () {
                $("#btndy").click(function () {
                    var headstr = "<html><head><title></title></head><body>";
                    var footstr = "</body>";
                    var newstr = $("#divprint").html();                   // 获取要打印的div内容
                    var oldstr = document.body.innerHTML;                // 将过去的body内容存到oldstr
                    document.body.innerHTML = headstr + newstr + footstr;     // 组合打印内容
                    window.print();                                  // 弹出打印窗体
                    document.body.innerHTML = oldstr;               // 还原HTML内容
                    window.location.href="/Account/UserManagerMent";          // 刷新当前页面
                });
            });

    至于后台以前是什么样,现在还是什么样,只是刷新一下而已

    小Y子的代码和我的差不多

    <button onclick="doPrint()">打印</button>
    <div id="pri">
    111111111
    </div>
    <script>
    function doPrint(){
            var head_str = "<html><head><title></title></head><body>"; //先生成头部
            var foot_str = "</body></html>"; //生成尾部
            var older = document.body.innerHTML;
            var new_str = document.getElementById('pri').innerHTML; //获取指定打印区域
            var old_str = document.body.innerHTML; //获得原本页面的代码
            document.body.innerHTML = head_str + new_str + foot_str; //构建新网页
            window.print(); //打印刚才新建的网页
            document.body.innerHTML = older; //将网页还原
            return false;
    }
    </script>

      

  • 相关阅读:
    new Date()的数据类型的问题
    GraphicsMagick / ImageMagick缺少lib报错no decode delegate for this image format
    python安装numpy和matplotlib
    蚂蚁金服CTO程立:金融级分布式交易的技术路径
    《Python基础教程读书笔记》
    《storm实战-构建大数据实时计算读书笔记》
    Ubuntu 16.04 几个国内更新源
    vim
    我的MySQL整理
    MySql unique的实现原理简析
  • 原文地址:https://www.cnblogs.com/yingger/p/5402018.html
Copyright © 2020-2023  润新知