这里的内容比较少,主要是解决上篇博客中提到的一个问题:C#中动态编写js脚本?
这里就以:显示一个弹出窗口,并转向目标页 这个简单的例子,来展示一下语法:
/// <summary>
/// 显示一个弹出窗口,并转向目标页(导航)
/// </summary>
public static void ShowAndRedirect(string message, string url)
{
string js = "<script language=\"javascript\">\n alert(\"" + message.Trim() + "\");\n window.location.href=\""
+ url.Trim() + "\";\n</script>";
System.Web.HttpContext.Current.Response.Write(js);
System.Web.HttpContext.Current.Response.End();
}
再如:
hl.Attributes.Add("onclick", "javascript:window.open('/XXXX.aspx?flag=" + strFlag
+ "&id=" + strReults[x] + "','','left:20,top:0,width:400,height:700');return false;");
注意:这里的打开窗口的样式的代码之间不能有空格,return false 的意思是组织页面的默认事件,在后面的博客中,将会详细学习具体用法和意义,这里不赘述。
再举一个常用的例子,单击某个控件的时候使用js弹出提示框:
Control.Attributes.Add("onclick", "return confirm('" + message + "');");
再如:
string sClickEvent = "if(!this.getElementsByTagName('SELECT')[0]) this.getElementsByTagName('A')[0].click();";//
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onmouseover", "this.style.backgroundImage='url(/Images/QueryList.gif)'");
e.Row.Attributes.Add("onmouseout", "this.style.backgroundImage=''");
//鼠标为小手形状
e.Row.Attributes["style"] = "Cursor:hand";
//添加单击事件
e.Row.Attributes.Add("onclick", sClickEvent);
}
这个知识点应用的场合非常广,比如在后台动态生成一个控件,并且要给控件一个异步交互的事件等等,可谓是星星之火具有燎原之势,关键的是掌握具体的语法和这种解决问题的思想,并在项目中多多运用。