ASP.NETにクライアントスクリプトコードを追加
3431 ワード
ASPを開発しているときNET Webアプリケーションでは、ASPXページに表示されるHTMLにクライアントスクリプトコードを追加する必要があります.実行時にこのコードを追加するには、2つの異なる方法があります.
1つ目の方法は、PageコントロールのRegisterClientScriptBlockメソッドを使用して、実行時にASPXページにコードを追加することができます.この方法にはkeyとscriptの2つのパラメータがある.パラメータkeyは唯一で、ページに追加した各scriptブロックを識別できます.スクリプトコードの重複追加を回避するには、IsClientScriptBlockRegisteredプロパティとkeyの値を使用します.パラメータscriptは、クライアントスクリプトコードを含む文字列です.ユーザーがボタンをクリックすると、次のJavaScriptコードが確認を求めます.
前のスクリプトコードをWebページに追加すると、個別のコントロールから呼び出す方法が必要です.しかし、設計時にクライアントイベントハンドラをボタンのonClickイベントに追加してconfirmDelete関数を呼び出すことはできません.実行時にクライアント・イベント・プロシージャを追加する方法が必要です.ユーザがボタンをクリックすると、ASP.NETボタンコントロールはWebページを送信し、サーバ側のButton_をトリガーします.Click()イベントプロセス(event procedure).
2つ目は、実行時にクライアントコードを追加する方法で、サーバコントロールに関連するプロパティセットであるAttributesプロパティを使用します.実行時には、ページがセットに追加した属性をHTMLとして表示します.システムからWeb.UI.WebControls.WebControl派生のASP.ボタンとテキストボックスを含むNETサーバコントロールは、独自のAttributesコレクションプロパティを備えています.ボタンのAttributesコレクションを使用してconfirmDelete関数を呼び出すことができます.
上のコードは、ページのOnLoadイベント中に表示される可能性があります.ユーザーがボタンをクリックすると、確認メッセージボックスが削除操作を行うかどうかを尋ねます.ユーザーがOKをクリックすると、そのページがサーバにコミットされ、btnDelete_が実行されます.Click()イベント中の任意のコード.Cancelをクリックすると、Webサーバへのページのコミットがブロックされます.
DataGridコントロールがあり、DataGridがグリッド(grid)の行を削除できるようにしている場合、クライアントコードは必要ありません.グリッドのDeleteボタンをクリックするだけで行を削除できますが、削除時に確認を求めることはありません.このときAttributesプロパティが役立ちます.DataGridのItemDataBound()サーバイベントを使用して、グリッド内の削除ボタンごとに属性を追加できます.DataGridのDataBindメソッドを使用してグリッドにデータをバインドすると、追加された行ごとにItemDataBoundイベントがトリガーされます.イベントに追加されたコードは次のとおりです.
あなたにあげるASP.NETアプリケーションがクライアント・スクリプト・コードを追加すると、スクリプト・コードのメリットがすぐにわかります.あなたのアプリケーションのユーザーは、よりインタラクティブで応答の速いインタフェースを提供してくれたことに感謝します.
作成者について:
Paul DelcoglianoはProgressive Systems Consulting社の技術責任者で、Visual Studioから来た.NET beta 1のリリース以来、WindowsやWebベースのアプリケーションを開発してきた.あなたは[email protected]彼に連絡する.
1つ目の方法は、PageコントロールのRegisterClientScriptBlockメソッドを使用して、実行時にASPXページにコードを追加することができます.この方法にはkeyとscriptの2つのパラメータがある.パラメータkeyは唯一で、ページに追加した各scriptブロックを識別できます.スクリプトコードの重複追加を回避するには、IsClientScriptBlockRegisteredプロパティとkeyの値を使用します.パラメータscriptは、クライアントスクリプトコードを含む文字列です.ユーザーがボタンをクリックすると、次のJavaScriptコードが確認を求めます.
Private Sub Page_Load(byval sender as Object, _
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 If
End Sub
前のスクリプトコードをWebページに追加すると、個別のコントロールから呼び出す方法が必要です.しかし、設計時にクライアントイベントハンドラをボタンのonClickイベントに追加してconfirmDelete関数を呼び出すことはできません.実行時にクライアント・イベント・プロシージャを追加する方法が必要です.ユーザがボタンをクリックすると、ASP.NETボタンコントロールはWebページを送信し、サーバ側のButton_をトリガーします.Click()イベントプロセス(event procedure).
2つ目は、実行時にクライアントコードを追加する方法で、サーバコントロールに関連するプロパティセットであるAttributesプロパティを使用します.実行時には、ページがセットに追加した属性をHTMLとして表示します.システムから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 If
End Sub
あなたにあげるASP.NETアプリケーションがクライアント・スクリプト・コードを追加すると、スクリプト・コードのメリットがすぐにわかります.あなたのアプリケーションのユーザーは、よりインタラクティブで応答の速いインタフェースを提供してくれたことに感謝します.
作成者について:
Paul DelcoglianoはProgressive Systems Consulting社の技術責任者で、Visual Studioから来た.NET beta 1のリリース以来、WindowsやWebベースのアプリケーションを開発してきた.あなたは[email protected]彼に連絡する.