• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
一个具有上进心的码农
因为一篇文章中有很多是从很多篇文章中摘取的,请恕我没有一一说明摘取出处,如果没有说明,则该文章默认是摘取,如有侵犯您的权益,请与我联系,将会马上删除。
博客园    首页    新随笔    联系   管理    订阅  订阅

httpmodule,JS打印

没有技术含量。只是为了让以候找的时候更方便点。

在web系统中就最简单了﹐只要做一个访问的url和功能的对应关系﹐然后利用一个httpmodule在每次request时﹐先把url转换成功能﹐然后再调用上述权限判断方法﹐返回true就进﹐false就转向错误页面。


using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

/// <summary>
/// HelloWorldModule 的摘要说明
/// </summary>
public class HelloWorldModule : IHttpModule
{
public HelloWorldModule()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
    string str = "";
    public String ModuleName
    {
        get { return "HelloWorldModule"; }
    }

    public void Init(HttpApplication application)
    {
        //注册页面请求开始和结束事件
        application.BeginRequest +=
            (new EventHandler(this.Application_BeginRequest));
        application.EndRequest +=
            (new EventHandler(this.Application_EndRequest));
    }

    private void Application_BeginRequest(Object source, EventArgs e)
    {
        //在页面开始请求前写入一段文字
        HttpApplication application = (HttpApplication)source;
        HttpContext context = application.Context;
        context.Response.Write(@"<h1><font color=red>
            HelloWorldModule: Beginning of Request
            </font></h1><hr>"+
        application.Request.QueryString.Count.ToString());
    }

    private void Application_EndRequest(Object source, EventArgs e)
    {
       //页面请求结束后写入一段文字
       HttpApplication application = (HttpApplication)source;
       HttpContext context = application.Context;
       context.Response.Write(@"<hr><h1><font color=red>HelloWorldModule: End of Request</font></h1>");
    }
    public void Dispose()
    {
    }
}

在web.config增加下面配置:

<httpModules>

<add name="HelloWorldModule" type="HelloWorldModule"/>

</httpModules>

 

handler   防盗链、快速轻量级的页面
module   登陆验证、防刷新。。。


首先在网页中添加:    
   
  <OBJECT   id="WebBrowser"   height="0"   width="0"   classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"    
  VIEWASTEXT>    
  </OBJECT>    
   
  然后就可以依次加入功能按钮了:    
   
  <input   onclick="document.all.WebBrowser.ExecWB(6,1)"   type="button"   value="打印">   <input   onclick="document.all.WebBrowser.ExecWB(6,6)"   type="button"   value="直接打印">    
  <input   onclick="document.all.WebBrowser.ExecWB(8,1)"   type="button"   value="页面设置">    
  <input   onclick="document.all.WebBrowser.ExecWB(7,1)"   type="button"   value="打印预览">&nbsp;<INPUT   type="button"   value="关闭窗口"   onclick="javascript:window.close()">    
   
  将这两块东西放到<center   class=noprint></center>就不会打印这些按钮了。当然要定义noprint了:    
   
  <style   media="print">.Noprint   {   DISPLAY:   none   }</style>只要把不想打印的东西的css设置成noprint就可以了。    
   
  现在就实现了基本的web打印,需要注意的情况如下:    
   
  必须将ie的internet选项的安全设置中对于没有标记为安全的ActiveX控件进行...设置成提示或者启用,否则会报错,导致不可用。    
  如果在vs.net编辑环境下编辑该页面,它经常自动的给object添加多余的参数,有了这些东西,打印就会出错,所以要记得最后保存的时候删除它们。    
  为了简便并且达到最好的效果,我们可以在一个页面实现编辑和打印,这时候会需要很多的textbox,我们把它的css设置成.edittext    
  {    
  overflow-y:visible;    
  width:   100%;    
  border-top:   none;    
  border-right:   none;    
  border-bottom:   none;    
  border-left:   none;    
  }就可以实现在打印的时候不显示边框和multiline的textbox不显示滚动条了。    
   
  还有一些小经验就是在设置标格宽度的时候,对于A4纸张,横打用920,竖打用640,效果最好。   

posted @ 2008-06-19 14:49  不若相忘于江湖  阅读(567)  评论(2)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3