asp.net c# 在浏览器打印热键上强制重新加载页面
asp.net c# force page reload on browser print hotkey
如果用户按下打印热键 (ctrl+P),是否有任何方法可以在我的 asp.net c# web 应用程序中 运行 编码?
我有一个多行 asp:TextBox,我需要计算行数以生成文档文本框的正确高度。 Atm 我有一个打印按钮,它工作得很好,但如果用户使用浏览器打印功能,我想 运行 相同的代码。
提前致谢
我会在 Webforms 中做类似的事情。制作一个虚拟 Button
或 LinkButton
并在按下 Control+P 时使用 jQuery 触发点击。然后在后面的代码中使用 ScriptManager
.
将 window.print()
写入页面
需要 LinkButton 中的 <span>
元素来注册点击。
<script>
$(window).bind('keydown', function (e) {
if ((e.ctrlKey || e.metaKey) && String.fromCharCode(e.which).toUpperCase() === 'P') {
$('#LinkButton1')[0].click();
e.preventDefault();
}
});
</script>
<asp:LinkButton ID="LinkButton1" runat="server"
ClientIDMode="Static" OnClick="LinkButton1_Click"><span></span></asp:LinkButton>
然后是代码
protected void LinkButton1_Click(object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "PrintWindow", "window.print()", true);
}
如果用户按下打印热键 (ctrl+P),是否有任何方法可以在我的 asp.net c# web 应用程序中 运行 编码?
我有一个多行 asp:TextBox,我需要计算行数以生成文档文本框的正确高度。 Atm 我有一个打印按钮,它工作得很好,但如果用户使用浏览器打印功能,我想 运行 相同的代码。
提前致谢
我会在 Webforms 中做类似的事情。制作一个虚拟 Button
或 LinkButton
并在按下 Control+P 时使用 jQuery 触发点击。然后在后面的代码中使用 ScriptManager
.
window.print()
写入页面
需要 LinkButton 中的 <span>
元素来注册点击。
<script>
$(window).bind('keydown', function (e) {
if ((e.ctrlKey || e.metaKey) && String.fromCharCode(e.which).toUpperCase() === 'P') {
$('#LinkButton1')[0].click();
e.preventDefault();
}
});
</script>
<asp:LinkButton ID="LinkButton1" runat="server"
ClientIDMode="Static" OnClick="LinkButton1_Click"><span></span></asp:LinkButton>
然后是代码
protected void LinkButton1_Click(object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "PrintWindow", "window.print()", true);
}