如何在不显示数据的情况下打印报告,这意味着只有纸张输出无屏幕输出。
在我的母版页面中我放了一个iframe:
<iframe id="reportout" width="0" height="0" />
</form>
和我的Ford.aspx:
<script type="text/javascript">
// Submit Button
function OnSumbitButtonClick(s, e) {
// e.processOnServer = false;
var Temp = <%= TempId %> //Get value from Server
//alert(Temp +'--'+ ASPxTextBox_NBR_COLIS.GetValue());
document.getElementById('reportout').contentWindow.location = '../Print/BonEticket_Web.aspx?OdreID=' + Temp + '&CountOrdre=' +ASPxTextBox_NBR_COLIS.GetValue();
}
</script>
<dx:ASPxButton ID="ASPxButton_save" runat="server" Image-Url="~/images/Icon/Good-or-Tick-icon.png" Text="Enregistrer" Width="110px" onclick="ASPxButton_save_Click">
<ClientSideEvents Click ="OnSumbitButtonClick" />
</dx:ASPxButton>
和m Ford.aspx.cs:
protected void ASPxButton_save_Click(object sender, EventArgs e)
{
try
{
//Get new inserted ID from Database --> my SQL id is autoincrement
TempId = oOrdre_BL.SaveUpdt_Ordre_BL(oPersOrdr, OrdreID);
// Response.Redirect("../Print/BonEticket_Web.aspx?OdreID=" + TempId + "&CountOrdre=" + ASPxTextBox_NBR_COLIS.Text);
}
catch (Exception ex)
{
lbl_err.Text = ex.Message;
if (ex.InnerException != null) { lbl_err.Text += "-->" +ex.InnerException.Message; }
}
当我启用javascript时问题:e.processOnServer = false;
它可以正常工作,但我不能这样做,因为我需要来自服务器var Temp = <%= TempId %>
的计算数据
先谢谢你帮助我。
答案 0 :(得分:1)
Internet Explorer有两个事件onbeforeprint和onafterprint,他们按照他们的说法行事
这是一个关于它们的小教程:http://www.javascriptkit.com/javatutors/ie5print.shtml
但是,如果您在企业环境之外,每个人都在使用IE,那么您必须具有创造性。
我能想到的一个想法是在弹出窗口中显示打印文本,打印自己并关闭。