在调用window.print()之后,我有一个页面需要通过OnClick对页面进行回发。我花了几个小时寻找解决方案,但到目前为止还没有找到合适的组合。我设置了一个测试页面,以确保没有其他javascript干扰。这是代码
<asp:Button ID="Print" runat="server" Text="Print" OnClientClick = "window.print();return true;" UseSubmitBehavior="false" OnClick="Print_Click" />
protected void Print_Click(object sender, EventArgs e)
{
Response.Write("Clicked");
}
这是浏览器中的渲染按钮:
<input id="Print" class="button" type="button" onclick="window.print();return true;__doPostBack('Print','')" value="Print" name="Print">
回发没有发生,并且没有调用print_click。我还尝试在page_load
上的代码中添加onclientclick我很感激任何帮助 - 我想我已经查看了100多个搜索结果。 谢谢, 朱迪
答案 0 :(得分:0)
<asp:Button ID="Print" runat="server" Text="Print" UseSubmitBehavior="false" OnClick="Print_Click" />
您是否尝试删除OnClickClick
以查看是否正确触发了回发?
如果这样可行,那么我会尝试手动添加客户端打印:
var originalClick = $('#Print').click();
$('#Print').click(function(){
window.print();
originalClick();
});
我认为protected
级别没问题,但为了以防万一,可以尝试public
。
答案 1 :(得分:0)
我认为这里的部分问题出在Firefox上。一位同事给了我一些有点不同的代码,它在FF中不起作用,但它适用于IE和Chrome。 这是他给我的东西 - 其中一部分涉及隐藏 function handlePrintClick(){ window.print(); var buttonId =“&lt;%= Print.ClientID%&gt;”; var buttonElm = document.getElementById(buttonId); buttonElm.click(); }