作成日: 2024/01/24 最終更新日: 2024/01/24
文書種別
使用方法
詳細
行選択はクライアント側における動作のため、その情報をサーバー側で取得する機能は用意されておりません。
しかし、デモ「クライアント側選択」およびヘルプ項目「現在のセル位置の追跡」の手法を組み合わせることにより、クライアント側で選択された行のデータをポストバック時にサーバー側に送信することは可能です。
なお、この場合はポストバックの発生によりクライアント側での行選択は解除されます。
具体的には、下記のようにOnClientSelectionChangedイベントを使用してクライアント側で選択行のデータを配列に格納し、それをPageオブジェクトの隠しフィールドの値として VB.NET側から取得します。
[aspx]
[VB.NET]
しかし、デモ「クライアント側選択」およびヘルプ項目「現在のセル位置の追跡」の手法を組み合わせることにより、クライアント側で選択された行のデータをポストバック時にサーバー側に送信することは可能です。
なお、この場合はポストバックの発生によりクライアント側での行選択は解除されます。
具体的には、下記のようにOnClientSelectionChangedイベントを使用してクライアント側で選択行のデータを配列に格納し、それをPageオブジェクトの隠しフィールドの値として VB.NET側から取得します。
[aspx]
<script type="text/javascript">
function clientSelectionChanged(e, args) {
var selectedCells = $(e.target).c1gridview("selection").selectedCells(); //選択行
var index = selectedCells._getSelectedRowsIndicies()[0]; //選択行のインデックス
var cellValue = new Array();
for (var i = 0; i < selectedCells.length(); i++) {
cellValue[i] = selectedCells.item(i).value();
}
//$("#selectedCellValue").val(index); //選択行のインデックスを返す場合
$("#selectedCellValue").val(cellValue.toString()); //選択行の内容を返す場合
}
</script>
<asp:Button ID="Button1" runat="server" Text="選択行のデータを取得" />
<wijmo:C1GridView ID="C1GridView1" runat="server"
・・・
ClientSelectionMode="SingleRow"
OnClientSelectionChanged="ClientSelectionChanged">
</wijmo:C1GridView>
[VB.NET]
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Page.ClientScript.RegisterHiddenField("selectedCellValue", Nothing)
End Sub
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim currentCellValue As String = Page.Request("selectedCellValue")
End Sub