網站首頁 編程語言 正文
假設在一個頁面上有眾多內容,而我們只想把該頁面上的表格內容打印出來,window.print()方法會把整個頁面的內容打印出來,如何做到只打印表格內容呢?
既然window.print()只會打印整頁的內容,何不把表格放在一個部分視圖中,在部分視圖中再調用window.print()方法。
Model很簡單:
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Score { get; set; }
}
Home控制器中有一個Action方法返回Student的集合到部分視圖:
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult PrintStudent()
{
var result = new List<Student>
{
new Student(){Id = 1, Name = "darren", Score = 90.9M},
new Student(){Id = 2, Name = "smith", Score = 91.8M},
new Student(){Id = 3, Name = "kathy", Score = 98.6M}
};
return PartialView(result);
}
}
在Home/PrintStudent.cshtml這個強類型視圖中調用window.print()方法:
@model IEnumerable<MvcApplication1.Models.Student>
<style type="text/css">
.c {
width: 100%;
border: 1px solid green;
border-collapse: collapse;
}
.c td {
padding: 2px;
border: 1px solid green;
}
</style>
<style>
/* 打印的時候讓打印按鈕隱藏 */
@@media only print {
a {
display: none;
}
}
</style>
<a href="#" onclick="window.print();return false;">打印表格</a>
<table class="c">
<thead>
<tr>
<th>編號</th>
<th>姓名</th>
<th>分數</th>
</tr>
</thead>
<tbody>
@foreach (var student in Model)
{
<tr>
<td>@student.Id</td>
<td>@student.Name</td>
<td>@student.Score</td>
</tr>
}
</tbody>
</table>
<a href="#" onclick="window.print();return false;">打印表格</a>
在Home/Index.cshtml視圖中,點擊按鈕,彈出部分視圖內容:
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<button id="p">打印已經確定好的內容</button>
@section scripts
{
<script type="text/javascript">
$(function() {
$('#p').click(function() {
$.ajax({
url: '@Url.Action("PrintStudent","Home")',
success: function(data) {
if (judgePopupBlocked) {
alert("瀏覽器禁用彈出窗口了,請允許彈出窗口");
}
var popUpWindow = window.open();
if (popUpWindow) {
$(popUpWindow.document.body).html(data);
} else {
alert("瀏覽器禁用彈出窗口了,請允許彈出窗口");
}
}
});
});
});
//判斷瀏覽器是否阻止了彈出窗口
function judgePopupBlocked() {
var w = window.open(null, "", "width=1,height=1");
try {
w.close();
return false;
} catch (e) {
return true;
}
}
</script>
}
點擊"打印已經確定好的內容"按鈕:
取消禁用彈出窗口,再次點擊"打印已經確定好的內容"按鈕:
點擊"打印表格":
原文鏈接:https://www.cnblogs.com/darrenji/p/3825236.html
相關推薦
- 2022-09-17 C++?中如何結束?while?(cin>>str)?的輸入_C 語言
- 2022-11-18 python標準庫?datetime的astimezone設置時區遇到的坑及解決_python
- 2022-10-26 Python?模擬死鎖的常見實例詳解_python
- 2022-04-14 C語言的分支和循環語句你了解嗎_C 語言
- 2023-10-14 JAXB解析xml節點既有屬性又有值
- 2022-11-08 Python??Pandas教程之使用?pandas.read_csv()?讀取?csv_pytho
- 2022-04-04 Python數據處理-導入導出excel數據_python
- 2022-06-08 自定義Dubbo反序列化
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支