はじめに
インフラジスティックスが提供するInfragistics NetAdvantage製品は、マルチプラットフォームでWindows Forms、ASP.NET、そして、Windows Presentation Foundationに対応した商用アプリケーションユーザーインターフェースの構築をサポートするプレゼンテーションレイヤコンポーネント群であり、その高度なユーザーインターフェースコントロールは使い慣れた画面操作をユーザーに提供するサポートをします。
今回は、UltraWebGridコントロールを使用した、クライアント側のプログラミング方法を紹介したいと思います。
対象読者
Visual Basic 2005、Visual C# 2005を使ってプログラムを作ったことがある人。
必要な環境・コンポーネントのインストール
必要な環境・コンポーネントのインストールについては、『高度なUIのグリッドを使ってAJAXの非同期データ更新を行う』を参考にしてください。
選択した行の値を非同期でテキストボックスに表示してみる
下準備
- Webサイトの新規作成
- コントロールの配置
- コードビハインドでデータバインド
protected void Page_Load(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Columns.Add("ID", typeof(string)); dt.Columns.Add("Name", typeof(string)); for (int i = 0; i < 100; i++) { dt.Rows.Add(new object[] { "ID" + i.ToString(), "Name_" + i.ToString() }); } this.UltraWebGrid1.DataSource = dt; this.UltraWebGrid1.DataBind(); }
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim dt As Data.DataTable = New Data.DataTable() dt.Columns.Add("ID", GetType(String)) dt.Columns.Add("Name", GetType(String)) Dim i As Int16 For i = 0 To 100 dt.Rows.Add(New Object() {"ID" + i.ToString(), "Name_" + i.ToString()}) Next Me.UltraWebGrid1.DataSource = dt Me.UltraWebGrid1.DataBind() End Sub
実装
UltraWebGridコントロールには、クライアント側でのプログラミングを簡単にするプロパティが用意されています。
- クライアント側イベントのコード挿入
- グリッド、セルのオブジェクトを取得
AfterRowActivateHandler
というイベントを使用します。AfterRowActivateHandler
というイベントが見つかったら、ドロップダウンで[新しいハンドラを追加…]を選択します。<script id="igClientScript" type="text/javascript"> <!-- function UltraWebGrid1_AfterRowActivateHandler(gridName, rowId) { //独自のイベントコードをここに追加します。 } // --> </script>
AfterRowActivateHandler
の場合、引数にはgridName
とrowId
が渡されています。つまり、グリッド自体を取得する場合は、var grid = igtbl_getGridById(gridName);
var row = igtbl_getRowById(rowId);
var cell1 = igtbl_getCellById("UltraWebGrid1_rc_3_0");
関数名 | 機能 |
igtbl_addNew | 新しい行を指定したバンドに追加します。 |
igtbl_cancelPostBack | イベント ハンドラ内からの自動ポストバックをキャンセルします。 |
igtbl_doPostBack | WebGridのルーチンによって、サーバへのポストバックを強制します。 |
igtbl_getBandById | IDから、バンドのDOMオブジェクトを返します。 |
igtbl_getCellById | IDから、セルのDOMオブジェクトを返します。 |
igtbl_getChildElementById | 渡されたIDから、ページ上のHTML要素を返します。 |
igtbl_getColumnById | IDから、列のDOMオブジェクトを返します。 |
igtbl_getDocumentElement | 渡されたIDから、ページ上のHTML要素を返します。 |
igtbl_getElementById | 渡されたIDから、ページ上のHTML要素を返します。 |
igtbl_getGridById | 渡されたIDで表されるグリッドのDOMオブジェクトを返します。 |
igtbl_getLength | オブジェクトのプロパティの数をカウントし、カウントを返します。 |
igtbl_getRowById | IDからDOMの行オブジェクトを返します。 |
igtbl_needPostBack | グリッドにポストバックを強制します。 |
ms-help://INFRAGISTICS_NETJA71CLR2_HELP/NetAdvantage_NETJA71CLR2/ Web_NETJA71CLR2/WebElements/Web_Client_Side_Object_Model_CSOM_Reference_Guide.html