LinkButton1.Attributes.add("onclick","alert();return false;")
解决方案 »
- Stackoverflow....C#调用C++的DLL
- sql语句问题
- Emit 如何对一个私有属性进行赋值?
- 关于 C# 数据列表显示的问题。
- 动态改变窗体大小
- 编译生成的中间语言MSIL,与java生成的字节码是一个概念吗?有何本质区别?
- 正则去掉所有HTML标签,在线等.
- 在WinForm中如何实现DateTimePicker的默认值为系统日期的前一天??
- 是不是DataGrid反过来不影响DataSet?????????
- 哪里有winform的控件下载?
- C#中,用System.DateTime.Now.MilliSecond得到的毫秒是100000进制的吗?
- [急.......]如何在RichTextBox中使输入的关键字变色,并根据输入的内容自动使文本变色??
{
if (j>100)
{....}
else
{
this.Page.Registerclientscriptblock("","<script>openXX();<script>");
//其中openXX();是Javascript的函数
}
}
与
this.Page.Registerclientscriptblock("","<script>openXX();<script>");
的效果是一样的
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的基类的代码
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块,该块自动地包含在<script> 标志内
/// </summary>
/// <param name="key">标识脚本块的唯一键</param>
/// <param name="script">脚本</param>
public override void RegisterClientScriptBlock(string key, string script)
{
RegisterClientScriptBlock(key, script, "Javascript", false);
} /// <summary>
/// 注册客户端脚本块,该块自动地包含在<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>
/// 注册客户端脚本块,该块自动地包含在<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 }
}