为了方便维护,我让许多的页继承于一个基类
public class BasePage:Page现在想让所有继承于它的所有页中都出现以下JS代码。
<script language="javascript">
             function Disable()
              {
  if (window.event.keyCode==13)
 {
 alert('不可能回车');
window.event.returnValue=false;
 }
                     
              }
    
我应该怎么作呢??原来想在基类的Page_load中用Response.Write方法输出来着,后来发现,它输出的代码在最顶上,这样不好。请高手给帮帮一下。
    
对了,以下的onKeyDown="DisableKey()"事件,如何在基类中添加呢??
       < body MS_POSITIONING="GridLayout" onKeyDown="DisableKey()">

解决方案 »

  1.   

    曾经想过
    <script type='text/javascript' src='那个js代码.js'></script>
    </head>怎么用Asp.net在<head></head>之间生成一个<script type='text/javascript' src='×××××.js'></script>  呢??由于初学,真是抓破头皮也不知道。希望高手,老程序人,给说说。
      

  2.   

    我Blog有一个文章,你可以看看,有相似之处
    http://blog.csdn.net/octverve/archive/2007/07/12/1687303.aspx
      

  3.   

    如果是在基类中输出,还要考虑脚本块的位置问题Page.Response.Write输出后的位置在源文件的第一行. 
    Page.RegisterClientScriptBlock输出后的位置会在<form>的下一行
    Page.RegisterStartupScript输出后的位置会在</form>的上一行.
      

  4.   

    刚看了ls的那个blog,很有用,现在就差,如何在后台给<body>添加onKeyDown事件了,并且是在基类的代码中。不知道,是不是不可能完成的任务???今天csdn人好少啊
      

  5.   

    // 1.x ?
    public class BasePage:Page
    {
    protected override OnLoad(EventArgs e) {
    // 1.
        Page.RegisterClientScriptBlock ("", @"<script language=""javascript"">
    function Disable()
    {
    if (window.event.keyCode==13)
    {
    alert('不可能回车');
    window.event.returnValue=false;
    }
    }
    </script>");// 2.
    /*
    对了,以下的onKeyDown="DisableKey()"事件,如何在基类中添加呢??
    < body MS_POSITIONING="GridLayout" onKeyDown="DisableKey()">
    */
       Page.RegisterClientScriptBlock ("", @"<script language=""javascript"">
    window.onload = function () {
    document.body.onkeydown = DisableKey;
    }</script>");}
    }
      

  6.   

    e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#e7e7e7'");
    不知道<body>能否加上 runat="server",你试一下,如果可以加,你再给它加一个ID,然后按照上边这个方法加上就OK了
      

  7.   

    body>添加onKeyDown事件了
    ----基类用Page.RegisterStartupScript输出一段脚本块,
    脚本内容如此:window.document.body.onkeydown = function(){ /*要执行的方法或代码*/}
      

  8.   

    Jinglecat(晓风残月 >> 问题需简洁,错误要详细,需求得明确) ( ) 信誉:94  2 总算有星星来了,你给的方法与octverve(生命无色,命运多彩……) ( ) 信誉:100 说的差不多,我也打算这么用了。至于如何在后台给<body>添加onKeyDown="ShowInfo()"事件,有没有更好的解决方法呢??gui0605(技术诚可贵,英语价更高;若为金钱故,二着皆可抛!() ( 不知道你回的是什么意思 如果每一个页面都手工加runat="server",我非常不愿意,我反对
      

  9.   

    sorry, some bug ->document.body.onkeydown = DisableKey;》》》document.body.onkeydown = function() { DisableKey() };//ORdocument.body.keydown = DisableKey;
      

  10.   

    就因为<body>不是Server的标签,所以只能用Page.RegisterStartupScript输出一段脚本块了吗??希望有更高明的方法
      

  11.   

    thanks  Jinglecat(晓风残月 >> 问题需简洁,错误要详细,需求得明确)
      

  12.   

    就因为<body>不是Server的标签,所以只能用Page.RegisterStartupScript输出一段脚本块了吗??希望有更高明的方法========1. 对于单页你可以给 body 加 runat=server
    // .aspx
    <body id=myBody runat=server/>// .aspx.cs
    myBody.Attributes["onkeydown"] = "DisableKey()"
    2. 1 不适合你的需求场景
    你只有想办法,通过 js 动态绑定事件,那么这个 js 只能服务器输出了你可以使用 Response.Write 3.
    我想 RegisterStartupScript 已经比较“优雅”的方案了,且它是安全的ASP.NET 控件内部都是这样使用的
    4. 假如你在 asp.net 2.0 
    请使用 Page.ClientScript.RegisterXXXX  等相关方法,这是 2.0 推荐的新 API