response.write("<script language='javascript'>")
response.write("var color;")
response.write("function myColor()")
response.write("{")
response.write("color=prompt('请输入一个颜色','');")
response.write("document.bgColor=color;")
response.write("}")
response.write("</script>")
response.write("var color;")
response.write("function myColor()")
response.write("{")
response.write("color=prompt('请输入一个颜色','');")
response.write("document.bgColor=color;")
response.write("}")
response.write("</script>")
ByVal e as EventArgs) ' Create your script code
Dim sScript as String = "<script" & _
"language=JavaScript> "
sScript = "function confirmDelete() {"
sScript += "confirm('Are you sure?');}"
sScript += "</script>" If(Not _
IsClientScriptBlockRegistered("MyScript") _
) Then
RegisterClientScriptBlock("MyScript", _
sScript)
End IfEnd Sub
在将前面的脚本代码添加到你的Web页面后,你就需要一种方式从单独的控件来调用它。然而,你不能在设计时将一个客户端事件处理程序添加到按钮的onClick事件来调用你的confirmDelete函数。你需要一种方法在运行时添加客户端事件过程。当用户点击了按钮时,ASP.NET按钮控件会提交一个Web页面,触发服务器端的Button_Click()事件过程(event procedure)。第二种在运行时添加客户端代码的方法就是运用Attributes属性,这是一个与服务器控件相关的属性集。在运行时,页面将你添加到该集合的任何属性呈现为HTML。从System.Web.UI.WebControls.WebControl派生的ASP.NET服务器控件,包括按钮和文本框,具有它们自己的Attributes集合属性。你可以用你的按钮的Attributes集合来调用confirmDelete函数: btnDelete.Attributes.Add("onClick", _
"return confirmDelete();")
上面的代码很可能出现在页面的OnLoad事件过程中。现在,当一个用户点击你的按钮时,一个确认信息框就会问他/她是否要进行删除操作。如果用户点击OK,该页面就被提交到服务器,并执行btnDelete_Click()事件过程中的任何代码。点击Cancel会阻止将页面提交到Web服务器。当你有一个DataGrid控件,而且DataGrid允许用户删除网格(grid)中的一行时,你不需要某些客户端代码,你只需要点击网格上的Delete按钮就可以删除行了,但是删除时不会提示用户进行确认。这时Attributes属性就派得上用场了。你可以用DataGrid的ItemDataBound()服务器事件给网格中的每个删除按钮添加一个属性。当你用DataGrid的DataBind方法将数据绑定到网格时,所添加的每一行都会触发ItemDataBound事件。在事件中添加的代码如下: Private Sub MyDataGrid_ItemDataBound(ByVal _
Sender as object, ByVal e As _
System.Web.UI.WebControls. _
DataGridItemEventArgs) _
Handles MyDataGrid.ItemDataBound' This code adds javascript to the "Del"
' button on each row in
' the datagrid the javascript displays a
' message box to the
' user, confirming the delete action
Dim btnDel As LinkButton
Const DEL_COLUMN As Int16 = 1
If Not (e.Item.ItemType = _
ListItemType.Header Or _
e.Item.ItemType = _
ListItemType.Footer) Then btnDel = _
e.Item.Cells(DEL_COLUMN).Controls(0)
btnDel.Attributes.Add("onClick", _
"confirmDelete();") End IfEnd Sub
在给你的ASP.NET应用程序添加客户端脚本代码后,你会很快地看到脚本代码所带来的好处。你的应用程序的用户将很感激你给他们提供了更具交互性、响应更快的界面。
可以到是可以但我button设成onclick,却要点两次才行
代码如下:
Public Class WebForm1
Inherits System.Web.UI.Page
Protected WithEvents Button1 As System.Web.UI.WebControls.Button#Region " Web 窗体设计器生成的代码 " '该调用是 Web 窗体设计器所必需的。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() End Sub Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
'不要使用代码编辑器修改它。
InitializeComponent()
End Sub#End Region Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
Response.Write("<script language='javascript'>")
Response.Write("var color;")
Response.Write("function myColor()")
Response.Write("{")
Response.Write("color=prompt('请输入一个颜色','');")
Response.Write("document.bgColor=color;")
Response.Write("}")
Response.Write("</script>")
End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Button1.Attributes.Add("onclick", "myColor();")
End Sub
End Class
RegisterClientScriptBlock("MyScript","<script language=javassScript>mycolor()</script>")