PowerTools InputMan for ASP.NET 8.0J > クライアント側スクリプト > イベントの追加 |
クライアント側のエンドユーザーの操作を処理するには、クライアント側にイベントハンドラを追加します。 ここでは、クライアント側イベントの実装方法について解説します。
<im_date:GcDate id="GcDate1" runat="server"> <ClientEvents InvalidInput="GcDate1_InvalidInput"></ClientEvents> </im_Date:GcDate>
function GcDate1_InvalidInput(sender, eArgs)
{
//Add code to handle your event here.
}
<im_date:GcDate id="GcDate1" runat="server"> <ClientEvents> <StandardClientEvents onblur="GcDate1_onblur"></StandardClientEvents> </ClientEvents> </im_Date:GcDate>
function GcDate1_onblur()
{
//Add code to handle your event here.
}
クライアント側のイベントをコーディングによって生成する場合、イベントハンドラと対応するJavaScript関数を追加する必要があります。イベントハンドラは、ASP.NETコードビハインドクラスで各コントロールのClientEventsプロパティに設定します。
以下は、マスクコントロールのInvalidInputイベントおよび、onblur標準イベントを追加するときの例です。ASP.NETコードビハインドクラスで各コントロールのClientEventsプロパティを設定します。
GcMask1.ClientEvents.InvalidInput = "GcMask1_InvalidInput" GcMask1.ClientEvents.StandardClientEvents.onblur = "GcMask1_onblur"
GcMask1.ClientEvents.InvalidInput = "GcMask1_InvalidInput"; GcMask1.ClientEvents.StandardClientEvents.onblur = "GcMask1_onblur";
function GcMask1_InvalidInput(sender, eArgs) { } function GcMask1_onblur() { }
また、InputMan for ASP.NET独自のイベントにのみ、クライアント側のonloadイベントに、JavaScriptの実装を行うことでイベントの処理が可能です。このとき、イベント関数は「OnXXX」(XXXはイベント名)を使用します。 次のサンプルコードは、テキストコントロールのKeyExitイベントの実装例です。
window.onload = function () { var gcTextBox = FindIMControl("GcTextBox1"); gcTextBox.OnKeyExit(function (sender, eArgs) { if (eArgs.Key == GCIM.ExitKeys.Tab) { alert("次のコントロールに移動します。"); } else { alert("前のコントロールに移動します。"); } }); };
function IMControl_onfocus(id)
{
FindIMControl(id).SetBackColor("blue");
}
<im_mask:GcMask id="GcMask1" runat="server"> <ClientEvents> <StandardClientEvents onfocus="IMControl_onfocus('GcMask1')"></StandardClientEvents> </ClientEvents> </im_mask:GcMask> <im_edit:GcTextBox id="GcTextBox1" runat="server"> <ClientEvents> <StandardClientEvents onfocus="IMControl_onfocus('GcTextBox')"></StandardClientEvents> </ClientEvents> </im_edit:GcTextBox>
GcMask1.ClientEvents.StandardClientEvents.onfocus = "IMControl_onfocus('GcMask1')" GcTextBox1.ClientEvents.StandardClientEvents.onfocus = "IMControl_onfocus('GcTextBox1')"
GcMask1.ClientEvents.StandardClientEvents.onfocus = "IMControl_onfocus('GcMask1')"; GcTextBox1.ClientEvents.StandardClientEvents.onfocus = "IMControl_onfocus('GcTextBox1')";
HTMLコントロールや、Visual Studioの標準コントロールでは、JavaScriptで自分自身を表すオブジェクトにアクセスするために「this」キーワードを使用することができます。しかし、InputMan for ASP.NETのコントロールは、多くのHTMLエレメントで作成されているため、「this」キーワードを使用してのコントロールのオブジェクトへのアクセスはサポートされていません。上記のように、コントロールIDとFindIMControlメソッドを使用してオブジェクトを取得する方法を推奨します。 |