LinkButton1.Attributes.add("onclick","alert();return false;")

解决方案 »

  1.   

    这样只能是在按钮事件开始时可以操作;如果我要先执行一段代码,后再调用SCRIPT呢?如:procedure void linkbutton_click(object sender,e...)
    {
      if (j>100)
        {....}
      else
      {
         this.Page.Registerclientscriptblock("","<script>openXX();<script>");
        //其中openXX();是Javascript的函数
       }
    }
      

  2.   

    Response.Write("<script language=javascript>...</script>");
      

  3.   

    Response.Write("<script language=javascript>...</script>");

     this.Page.Registerclientscriptblock("","<script>openXX();<script>");
    的效果是一样的
      

  4.   

    LinkButton1.Attributes.add("onclick","alert();")Response.Write("<script language=javascript>JS代码</script>");
      

  5.   

    我刚才作了一个实验,调试通过。
    WebForm1:<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="WebApplication3.WebForm1" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
    <HEAD>
    <title>WebForm1</title>
    <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
    <meta name="CODE_LANGUAGE" Content="C#">
    <meta name="vs_defaultClientScript" content="JavaScript">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    <script language="javascript">
    function openForm2()
    {
       window.open("WebForm2.aspx");
    }
    </script>
    </HEAD>
    <body MS_POSITIONING="GridLayout">
    <asp:literal id="_clientScript" runat="server"></asp:literal></asp:literal></B> <form id="Form1" method="post" runat="server">
    <FONT face="宋体">
    <asp:TextBox id="TextBox1" style="Z-INDEX: 101; LEFT: 328px; POSITION: absolute; TOP: 96px" runat="server"></asp:TextBox>
    <asp:Button id="Button1" style="Z-INDEX: 102; LEFT: 496px; POSITION: absolute; TOP: 96px" runat="server"
    Text="Button"></asp:Button>
    <asp:Button id="Button2" style="Z-INDEX: 103; LEFT: 496px; POSITION: absolute; TOP: 152px" runat="server"
    Text="Button"></asp:Button>
    <asp:TextBox id="TextBox2" style="Z-INDEX: 104; LEFT: 328px; POSITION: absolute; TOP: 144px"
    runat="server"></asp:TextBox></FONT>
    </form>
    </body>
    </HTML>对应的cs代码:
    private void Button1_Click(object sender, System.EventArgs e)
    {
    if(TextBox1.Text == "1")
    {
    //this.RegisterClientScriptBlock("1","<script language=javascript>openForm2();</script>","javascript",true);
    this.RegisterClientScriptEvent("2","onclick","Button1","openForm2();");
    }
    }
    -------------------------------------------------------
    WebForm1的基类的代码
      

  6.   


    using System;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Web;
    using System.Web.SessionState;
    namespace WebApplication3
    {
    /// <summary>
    /// KYPage 的摘要说明。
    /// </summary>
    public class KYPage :System.Web.UI.Page
    {
    private const string ERROR_EXCEPTION = "Exception";
    protected Hashtable m_ClientScripts;// Set of client side scripts to output in HTML header
    public    Literal   _clientScript; // Placeholder for script output in the webpage public KYPage() : base()
    {
    this.m_ClientScripts = new Hashtable();
    } #region 客户端脚本注册
    /// <summary>
    /// 写跟踪日志
    /// </summary>
    /// <param name="str">输出字符串</param>
    protected void DbgTrace(string str)
    {
    if (HttpContext.Current != null && Trace != null && Trace.IsEnabled)
    {
    Trace.Write(ToString(), str);
    }
    } /// <summary>
    /// 获取存放脚本的HTML字符串
    /// </summary>
    protected string ClientScript
    {
    get
    {
    StringBuilder script = new StringBuilder(); if (m_ClientScripts != null)
    foreach (object scriptBlock in m_ClientScripts.Values)
    script.Append(scriptBlock.ToString() + "\n"); DbgTrace("ClientScript is " + script.ToString());
    return script.ToString();
    }
    } /// <summary>
    /// 注册客户端 javascript event handler
    /// </summary>
    /// <param name="key">标识脚本块的唯一键</param>
    /// <param name="eventName">事件名</param>
    /// <param name="ctrlName">页面元素名</param>
    /// <param name="script">脚本</param>
    public virtual void RegisterClientScriptEvent(string key, string eventName, string ctrlName, string script)
    {
    RegisterClientScriptEvent(key, eventName, ctrlName, script, "Javascript");
    } /// <summary>
    /// 注册客户端 event handler,可以自己选择脚本语言
    /// </summary>
    /// <param name="key">标识脚本块的唯一键</param>
    /// <param name="eventName">事件名</param>
    /// <param name="ctrlName">页面元素名</param>
    /// <param name="script">脚本</param>
    /// <param name="language">脚本语言类型</param>
    public virtual void RegisterClientScriptEvent(string key, string eventName, string ctrlName, string script, 
    string language)
    {
    //仅在IE4和其以上版本才支持
    if (Request.Browser.Browser.ToUpper().IndexOf("IE") < 0 || 
    Double.Parse(Request.Browser.Version) < 4.0)
    return; StringBuilder block = new StringBuilder();
    block.Append("<script type=\"text/javascript\" language=\"");
    block.Append(language);
    block.Append("\" for=\"");
    block.Append(ctrlName);
    block.Append("\" event=\"");
    block.Append(eventName);
    block.Append("\" defer=\"true\"><!--\n");
    block.Append(script);
    block.Append("\n//--></script>"); if (!m_ClientScripts.ContainsKey(key))
    {
    m_ClientScripts.Add(key, block);
    DbgTrace("Adding script: " + key + " - " + block);
    }
    else
    {
    m_ClientScripts[key] = block;
    DbgTrace("Replacing file: " + key + " - " + block);
    }
    } /// <summary>
    /// 注册客户端javascript脚本文件
    /// </summary>
    /// <param name="key">标识脚本文件的唯一键</param>
    /// <param name="file">脚本文件名</param>
    public virtual void RegisterClientScriptFile(string key, string file)
    {
    RegisterClientScriptFile(key, file, "Javascript", false);
    } /// <summary>
    /// 注册客户端脚本文件,语言可以设置
    /// </summary>
    /// <param name="key">标识脚本文件的唯一键</param>
    /// <param name="file">脚本文件名</param>
    /// <param name="language">脚本语言种类</param>
    public virtual void RegisterClientScriptFile(string key, string file, string language)
    {
    RegisterClientScriptFile(key, file, language, false);
    } /// <summary>
    /// 注册客户端脚本文件,语言可以设置,可以设置是否在页面完全加载后执行脚本
    /// </summary>
    /// <param name="key">标识脚本文件的唯一键</param>
    /// <param name="file">脚本文件名</param>
    /// <param name="language">脚本语言种类</param>
    /// <param name="defer">是否在页面完全加载后执行脚本,是true,否false</param>
    public virtual void RegisterClientScriptFile(string key, string file, string language, bool defer)
    {
    StringBuilder block = new StringBuilder();
    block.Append("<script type=\"text/javascript\" language=\"");
    block.Append(language);
    block.Append("\" src=\"");
    block.Append(file);
    if (defer) block.Append(" defer=\"true\"");
    block.Append("\"></script>"); if (!m_ClientScripts.ContainsKey(key))
    {
    m_ClientScripts.Add(key, block);
    DbgTrace("Adding file: " + key + " - " + file);
    }
    else
    {
    m_ClientScripts[key] = block;
    DbgTrace("Replacing file: " + key + " - " + file);
    }
    } /// <summary>
    /// 注册客户端javascript块,该块自动地包含在&lt;script> 标志内
    /// </summary>
    /// <param name="key">标识脚本块的唯一键</param>
    /// <param name="script">脚本</param>
    public override void RegisterClientScriptBlock(string key, string script)
    {
    RegisterClientScriptBlock(key, script, "Javascript", false);
    } /// <summary>
    /// 注册客户端脚本块,该块自动地包含在&lt;script> 标志内,脚本语言可选择
    /// </summary>
    /// <param name="key">标识脚本块的唯一键</param>
    /// <param name="script">脚本.</param>
    /// <param name="language">脚本语言</param>
    public virtual void RegisterClientScriptBlock(string key, string script, string language)
    {
    RegisterClientScriptBlock(key, script, language, false);
    } /// <summary>
    /// 注册客户端脚本块,该块自动地包含在&lt;script> 标志内,脚本语言可选择,可以设置是否在页面完全加载后执行脚本
    /// </summary>
    /// <param name="key">标识脚本块的唯一键</param>
    /// <param name="script">脚本</param>
    /// <param name="language">脚本语言</param>
    /// <param name="defer">是否在页面完全加载后执行脚本,是true,否false</param>
    public virtual void RegisterClientScriptBlock(string key, string script, string language, bool defer)
    {
    StringBuilder block = new StringBuilder();
    block.Append("<script type=\"text/javascript\" language=\"");
    block.Append(language);
    block.Append("\"");
    if (defer) block.Append(" defer=\"true\"");
    block.Append("><!--\n");
    block.Append(script);
    block.Append("\n--></script>"); if (!m_ClientScripts.ContainsKey(key))
    {
    m_ClientScripts.Add(key, block);
    DbgTrace("Adding script: " + key + " - " + script);
    }
    else
    {
    m_ClientScripts[key] = block;
    DbgTrace("Replacing script: " + key + " - " + script);
    }
    } /// <summary>
    /// 检查是否已经成功注册了某ID的脚本
    /// </summary>
    /// <param name="key">标识脚本块的唯一键</param>
    /// <returns>注册成功返回true</returns>
    public bool IsClientScriptRegistered(string key)
    {
    return m_ClientScripts.ContainsKey(key);
    } /// <summary>
    /// 在页面呈现之前将绑定的各个脚本块放存放到Header中的Literal的控件的Text属性中。
    /// </summary>
    /// <param name="e"></param>
    protected override void OnPreRender(EventArgs e)
    {
    if (_clientScript == null)
    {
    _clientScript = new Literal();
    _clientScript.Visible = false;
    }
    else
    _clientScript.Text = ClientScript; base.OnPreRender(e); if (Controls.Contains(_clientScript))
    _clientScript.Text = ClientScript;
    } #endregion }
    }
      

  7.   

    你将你的WebForm继承这个基类,然后如我上面所做就可以了