リストビューを表すオブジェクトです。
イベント名 |
発生タイミング |
---|---|
reloaded |
リストビューがデータをサーバーから再読み込みしたとき。 |
selectionchanged |
カレント行が変更されたとき。 |
selectedrowschanged |
リストビューの選択された行が変更されたとき。 |
valuechanged |
リストビューの値が変更されたとき。 |
selectedrowschangedイベント
listviewの現在の行が変更されたときにのみ発生するselectionchangedイベントとは異なり、ユーザーが選択した列をクリックしたときなど、リストビューの選択された行が変更されたときに発生します。
サンプルコード
var listview = Forguncy.Page.getListView("リストビュー1"); listview.bind("SelectedRowsChanged",function(){ //リストビューの選択行が変更されたときに行いたい処理をここで記載します。 });
valuechangedイベント
リストビューの値が変更されたときに発生します。
リストビューに数式(例:"=H2$2")が含まれている場合、データ件数が多いとパフォーマンスに影響があります。例えばリストビューに表示しているデータが3レコードあった場合、数式の書かれているセルに対してユーザーが入力を行うと、本イベントが3回発生します。数式が含まれていてかつデータ件数が多い場合、一つの回避方法として以下の方法があります。
Forguncy.Page.getListView("リストビュー1").bind("ValueChanged", function (e, param) { if (window.myTimeout) { clearTimeout(window.myTimeout); } window.myTimeout = setTimeout(function () { //値を変更した後に行いたい処理を記載します。 }, 10); });
イベント発生時に実行される関数の第2パラメーターは次のように定義されます。
パラメーター
interface
ListViewValueChangedEventArg{
CellRanges: CellRange[]; //どのセルの値が変更されたか
OldRowCount: number; //値が変更される前のリストビューの行カウント
NewRowCount: number; //値が変更された後のリストビューの行カウント
}
サンプルコード
var listview = Forguncy.Page.getListView("リストビュー1"); listview.bind("ValueChanged", function (e, param) { /* * listviewがリロードされた時、paramは次のようになります。: * { * CellRanges:[{Row:-1,Column:-1,RowCount:-1,ColumnCount:-1}], * OldRowCount:0, * NewRowCount:3, * } * * listviewで行1と列2のセルを編集すると、paramは次のようになります。: * { * CellRanges:[{Row:1,Column:2,RowCount:1,ColumnCount:1}], * OldRowCount:3, * NewRowCount:3, * } * * listviewでセル(1,2)をセル(3,4)にドラッグすると、paramは次のようになります。: * { * CellRanges:[{Row:1,Column:2,RowCount:1,ColumnCount:1},{Row:3,Column:4,RowCount:1,ColumnCount:1}], * OldRowCount:3, * NewRowCount:3, * } * * listviewで1行削除すると、paramは次のようになります。: * { * CellRanges:[{Row:-1,Column:-1,RowCount:-1,ColumnCount:-1}], * OldRowCount:3, * NewRowCount:2, * } * * listviewで1行追加すると、paramは次のようになります。: * { * CellRanges:[{Row:3,Column:-1,RowCount:1,ColumnCount:-1}], * OldRowCount:3, * NewRowCount:4, * } */ });
.bind( evenType [, eventData ], handler )
リストビューが持つイベントに対してイベントハンドラを紐づけます。
標準アクションの停止
紐づけたイベントの元々の動作をキャンセルするには、戻り値にfalseを返します。これにより、イベントバブリングも停止されるため、親要素が持つイベントの発生もキャンセルされます。
イベントへのデータの受け渡し
イベントハンドラにデータを受け渡すには、第2パラメーターに指定します。その場合、イベントハンドラは第3パラメーターに指定します。 受け渡されたデータは、イベントハンドラに渡されるjQueryイベントオブジェクトのdataプロパティから参照できます。
パラメーター
eventType |
Type: String |
紐づけするイベントを表す文字列。 |
eventData(オプション) |
Type: Anything |
イベントハンドラに渡すデータ。関数ではパラメーターであるjQueryイベントオブジェクトのdataプロパティから参照します。 |
handler |
Type: Function( Event eventObject ) |
イベント発生時に実行される関数。 |
戻り値
なし
.unbind( eventType [, handler ] )
指定したイベントハンドラの紐づけを削除します。第2パラメーターを省略した場合、指定イベントに紐づけされたすべてのイベントハンドラが削除されます。
パラメーター
eventType |
Type: String |
紐づけを削除するイベントを表す文字列。 |
handler(オプション) |
Type: Function( Event eventObject ) |
紐づけを削除するイベントハンドラの関数。 |
戻り値
なし
.unbindAll()
要素からすべてのイベントハンドラを削除します。
戻り値
なし
.addNewRow(rowValues: {[columnName: string]: any;} | any[], isText:
boolean)
リストビューに新しい行を追加します。
パラメーター
rowValues |
Type: {[columnName: string]: any;} |
追加する新しい行のデータ。 |
isText |
Type: boolean |
rowValues内のデータをテキストとして解析するかどうかを指定します。 |
戻り値
なし
サンプルコード
//例えばlistivewに3つの列があったとします。 //1列目の列名は「Name」です。 //2列目の列名は「Birthday」です。 //3列目の列名は「Department」です。セル型はコンボボックス、値は1,2,3、表示値は "DD1"、 "DD2"、 "DD3"とします。 //以下の3つの使用法は、すべて同じ行を追加します。 // //使用例1: listview.addNewRow({"Name":"Tanaka","Birthday":new Date(1990,1,3),"Department":1}); //使用例2: listview.addNewRow(["Tanaka",new Date(1990,1,3),1]); //使用例3: listview.addNewRow({"Name":"Tanaka","Birthday":"1990/01/03","Department":"DD1"}, true); //テキストが正しい値に解析できない場合、このメソッドは例外をスローします。 //以下の例は例外をスローします: listview.addNewRow({"Name":"Tanaka","Birthday":"aa","Department":"bb"}, true);
.addSelectedRow(rowIndex)
リストビューの選択列の指定した行のチェックボックスをチェックされた状態にします。
パラメーター
rowIndex |
Type: Number |
選択列をチェックされた状態にしたい行の行番号。行番号は0から始まります。 |
戻り値
なし
.clearAllSelectedRows()
リストビューの選択列のチェックボックスのチェックをすべて外れた状態にします。
戻り値
なし
.clearSelectedRow(rowIndex)
リストビューの選択列の指定した行のチェックボックスのチェックを外れた状態にします。
パラメーター
rowIndex |
Type: Number |
選択列のチェックを外れた状態にしたい行の行番号。行番号は0から始まります。 |
戻り値
なし
.clearSelectedRowByQuery(query:{[name:string]:any;})
クエリー条件に基づいてリストビューの選択した行をクリアします。
パラメーター
query:{[name:string]:any;} |
Type:オブジェクト |
クエリー条件。 |
戻り値
なし
サンプルコード
var listview = Forguncy.Page.getListView("リストビュー1"); //IDが1の行をクリアします。 listview.clearSelectedRowByQuery({ID:1});
.getDataTableName()
リストビューに連結されているテーブル名を取得します。
戻り値
String
.getMergedColumnInfos()
リストビューのすべての列に関する情報(行ヘッダー、列の選択、列の非表示などを含む)を取得します。
戻り値
IMergedColumnInfo[] インターフェース
interface
IMergedColumnInfo {
DesignerColumnIndex:
number; //デザイナである作業スペースの列番号。例えばA列は0、B列は1になります。
ColumnName:
string; //列の名前。
ColumnType: enum;
//リストビューに記載されている情報を表すListviewColumnType列挙型。
}
ColumnTypeの列挙型は以下のとおりです。
enum ListviewColumnType
{
RowHeader =
0,
SelectedColumn =
1,
DataColumn =
2
}
サンプルコード
//listviewが行ヘッダー、選択された列、データ列を表示する場合 var columns = listview.getMergedColumnInfos(); //columnsは次のようになります: //[{DesignerColumnIndex:0,ColumnType:0},{DesignerColumnIndex:0,ColumnType:1},{DesignerColumnIndex:0,ColumnType:2}]
.getName()
リストビューの名前を取得します。
戻り値
String
.getPaginationInfo()
リストビューがページングされている時、ページ情報(1ページの最大行数、ページ数、インデックス番号(0~))を取得します。
ページングされていない時の戻り値はnullです。
戻り値
ListviewPaginationInfo
interface
ListviewPaginationInfo {
MaxRowCountOfOnePage: number;
PageCount:
number;
PageIndex: number;//0~
}
サンプルコード
//このメソッドを使用する際は、PageDefaultDataLoadedイベントで行う必要があります。これは、ページのLoadedイベントで行うと、ページング情報が正しくない可能性があるためです。 Forguncy.Page.bind(Forguncy.PageEvents.PageDefaultDataLoaded, function () { var listview = Forguncy.Page.getListView("リストビュー1"); var pagingInfo = listview.getPaginationInfo(); /* pagingInfoは以下のようになります: * { * MaxRowCountOfOnePage:10, * PageCount:3, * PageIndex:0 * } */ listview.bind("reloaded", function () { //ページナビゲーションのセル型のボタンをクリックすると、リストビューは新しいページでリロードされます。 var pagingInfo = listview.getPaginationInfo(); }); });
.getRowCount()
リストビューに表示されているデータの行数を取得します。
戻り値
Number
.getSelectedRowsData()
選択された行データの配列を取得します。
行データは次のようになります。
戻り値
RowData
class RowData {
RowIndex: number;//リストビューの選択された行の行番号。クエリーが空の場合のみ、RowIndexは有効な値を持ちます。
listviewの新しい追加行と同じです。
Query: { [name: string]: any
};//選択した行のクエリ情報
Values: any[]; //選択した行のデータ
}
サンプルコード
var listview = Forguncy.Page.getListView("リストビュー1") var rows = listview.getSelectedRowsData();
.getSelectedRowIndex()
選択行の行番号を取得します。行番号は0から始まります。
戻り値
Number
.getSelectedRowIndexs()
複数選択を行っている場合の選択行の行番号を取得します。行番号は0から始まります。
戻り値
Array
.getText(rowIndex: number, column: string | number): any;
リストビューの指定されたセルのテキストを取得します。
パラメーター
rowIndex |
Type: Number |
取得したいセルの行番号。行番号は0から始まります。 |
column |
Type: StringかNumber |
取得したいセルのリストビュー上の列名。 |
戻り値
Anything
サンプルコード
//listviewに2つのカラムがある場合、最初のカラムは "Name"、2番目のカラムは "Age"となります。 //最初の行の "Age"セルの値を取得する場合、以下のように記載します。 //使用例1: listview.getText(0,"Age"); //使用例2: listview.getText(0,1);
.getValue( rowIndex, columnName )
リストビュー内の指定したセルの値を取得します。
パラメーター
rowIndex |
Type: Number |
取得したいセルの行番号。行番号は0から始まります。 |
columnName |
Type: String、またはType: Number |
取得したいセルのリストビュー上の列名、もしくはインデックス。 |
戻り値
Anything
サンプルコード
var listview = Forguncy.Page.getListView("リストビュー1"); listview.getValue(0, "年齢"); listview.getValue(0, 1);
.hiddenLoadingIndicator()
showLoadingIndicatorを呼び出すと、リストビューの表示が完了していないにも関わらずユーザーがリストビューに対して操作を行わないようにするために、インジケータが表示されている間リストビューを無効にできます。hiddenLoadingIndicatorが呼び出されると、リストビューは有効になります。
戻り値
なし
サンプルコード
var listview = Forguncy.Page.getListView("リストビュー1"); listview.showLoadingIndicator(); //listviewにデータをインポートします。 listview.hiddenLoadingIndicator();
.isSelectedRow(rowIndex)
リストビューの選択列の指定した行のチェックボックスの状態を取得します。
パラメーター
rowIndex |
Type: Number |
選択列のチェックボックスの状態を取得したい行の行番号。行番号は0から始まります。 |
戻り値
Boolean
.reload()
リストビューのデータをサーバーから再読み込みします。
戻り値
なし
.selectAllRows()
リストビューの選択列のチェックボックスをすべてチェックされた状態にします。
戻り値
なし
.selectRow( index )
指定したリストビューの行を選択状態にします。
パラメーター
index |
Type: Number |
選択状態にしたい行の行番号。行番号は0から始まります。 |
戻り値
なし
.setValue( rowIndex, columnName, value )
リストビュー内の指定したセルに値を設定します。
パラメーター
rowIndex |
Type: Number |
値を設定したいセルの行番号。行番号は0から始まります。 |
columnName |
Type: String |
値を設定したいセルのリストビュー上の列名。 |
value |
Type: Anything |
設定する値。 |
戻り値
なし
.showLoadingIndicator()
showLoadingIndicatorを呼び出すと、リストビューの表示が完了していないにも関わらずユーザーがリストビューに対して操作を行わないようにするために、インジケータが表示されている間リストビューを無効にできます。hiddenLoadingIndicatorが呼び出されると、リストビューは有効になります。
戻り値
なし
サンプルコード
var listview = Forguncy.Page.getListView("リストビュー1"); listview.showLoadingIndicator(); //listviewにデータをインポートします。 listview.hiddenLoadingIndicator();