前几天为客户做WEB系统的时候,需要在每个页面的header 上面加个“退出系统”的连接;而且要有确认对话框。一般就是通过添加“ this.LinkButton.Attributes.Add("OnClick","javascript:return confirm('您确定要退出系统吗?')") ”脚本。然而由于在主页面也有相类似的提示框,所以在Framwork1.1下可能会出现“htmlfile:指针无效”,然后整个页面无法加载CSS样式。
        这里给出了个解决的办法,具体的看下面:

1--可以将自定义控件的子控件(与javascript相关连,如 LinkButton LbnQuit)定义成 public属性
2--在引用该控件的页面添加 对该自定义空间的引用,如:
   public bankofchina.userContorl.header Header1;
   该自定义在html文件中的定义为:
   <uc1:header id="Header1" runat="server"></uc1:header>
   这样我们就像定义了一个类似WebControl的控件。
  
3--在引用该控件的页面里面添加这么一条语句:
   Header1.LbnQuit.Attributes.Add("OnClick","javascript:return confirm('您确信要退出系统?');");
4--由于上面的事件给LbnQuit定义了个点击该控件便弹出对话框的功能,这时候如果用户“确认提示”,应该能继续
   做下面的事情,例如:
   Session.Clear();//window.opener=null;
   Session["class"]="-1";  
   //Response.Write("<script language=javascript>self.close();</script>");//这个不能添加的
   为了让上面的能够执行下去,我们可以定义一个单击事件
   private void LbnQuit_Click(object sender, System.EventArgs e)

小结:
    经过上面的几个步骤,我们就可以实现如下流程的功能:
    页面显示该控件-->单击该控件-->弹出确认对话框-->确认提示--->执行定义的事件处理函数-->结束
                                                    │                                                                               ↑
                                                     ---------------取消确认-----------------------------------

   
    本来想设置它为 public static,然后在Application_Start()里 初始话这个LinkButton.但是编译通不过,想知道怎么解决.
posted on 2005-03-12 13:22  zfphere  阅读(3792)  评论(0编辑  收藏  举报