asp.net c# 在浏览器打印热键上强制重新加载页面

asp.net c# force page reload on browser print hotkey

如果用户按下打印热键 (ctrl+P),是否有任何方法可以在我的 asp.net c# web 应用程序中 运行 编码?

我有一个多行 asp:TextBox,我需要计算行数以生成文档文本框的正确高度。 Atm 我有一个打印按钮,它工作得很好,但如果用户使用浏览器打印功能,我想 运行 相同的代码。

提前致谢

我会在 Webforms 中做类似的事情。制作一个虚拟 ButtonLinkButton 并在按下 Control+P 时使用 jQuery 触发点击。然后在后面的代码中使用 ScriptManager.

window.print() 写入页面

需要 LinkBut​​ton 中的 <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);
}