web-dev-qa-db-ja.com

jqGridの選択された行のセル値を取得する方法

JQGridの選択された行のセル値を取得する方法を知っている人はいますか? JQGridでmvcを使用している場合、選択した行の非表示列の値にアクセスしたいですか?

32
Saad

最初に、rowidメソッドと 'selrow' をパラメーターとして選択した行のgetGridParamを取得し、次に getCell は、対応する列からセル値を取得します。

var myGrid = $('#list'),
    selRowId = myGrid.jqGrid ('getGridParam', 'selrow'),
    celValue = myGrid.jqGrid ('getCell', selRowId, 'columnName');

'columnName'は、colModel'name'プロパティで使用する名前と同じにする必要があります。選択した行の多くの列の値が必要な場合は、 getCell の代わりに getRowData を使用できます。

85
Oleg

この方法でも使用できます

var rowId =$("#list").jqGrid('getGridParam','selrow');  
var rowData = jQuery("#list").getRowData(rowId);
var colData = rowData['UserId'];   // perticuler Column name of jqgrid that you want to access
14

追加するだけで、rowIDと列インデックス(列名ではなく)に基づいてjqGridセル値を取得することもできます。

したがって、主キーID 1234の行の4番目の列(列インデックス#3)の値を取得するには、次のように使用できます。

var rowID = 1234;
var columnIndex = 3;
var cellValue = $("#" + rowID).find('td').eq(columnIndex).text();

ところで、完全に無関係なトピックについて(しかし、私に投票しないでください):

テキストボックスをjqGridに簡単にリンクできるため、ユーザーが[検索]ダイアログを開かなくてもすぐに検索できることを知りませんでした。

enter image description here

これを行うには、次のようなHTMLが少し必要です。

<input type="text" name="employeeName" id="employeeName" style="width:250px" />

<!--  This will be my jqGrid control and pager -->
<table id="tblEmployees"></table>
<div id="pager"></div>

そして、このような少しのJavaScript:

$("#employeeName").on('change keyup paste', function () {
    SearchByEmployeeName();
});

function SearchByEmployeeName()
{
    //  Fetch the text from our <input> control
    var searchString = $("#employeeName").val();

    //  Prepare to pass a new search filter to our jqGrid
    var f = { groupOp: "AND", rules: [] };

    //  Remember to change the following line to reflect the jqGrid column you want to search for your string in
    //  In this example, I'm searching through the UserName column.

    f.rules.Push({ field: "UserName", op: "cn", data: searchString });

    var grid = $('#tblEmployees');
    grid[0].p.search = f.rules.length > 0;
    $.extend(grid[0].p.postData, { filters: JSON.stringify(f) });
    grid.trigger("reloadGrid", [{ page: 1 }]);
}

これは私にとって本当のゲームチェンジャーです... jqGridがユーザーフレンドリーになります。

ユーザーは、検索ダイアログを開く必要がなく、すぐに検索文字列の入力を開始できます。演算子を「含む」に変更してから入力を開始し、検索ダイアログを再度閉じます。

4
Mike Gledhill

「selrow」を使用して、選択した行IDを取得します

var myGrid = $('#myGridId');

var selectedRowId = myGrid.jqGrid("getGridParam", 'selrow');

次に、getRowDataを使用して、インデックスselectedRowIdの選択された行を取得します。

var selectedRowData = myGrid.getRowData(selectedRowId);

JqGridで複数選択がtrueに設定されている場合、「selarrrow」を使用して選択された行のリストを取得します。

var selectedRowIds = myGrid.jqGrid("getGridParam", 'selarrrow');

ループを使用して、選択した行のリストを繰り返します。

var selectedRowData;

for(selectedRowIndex = 0; selectedRowIndex < selectedRowIds .length;selectedRowIds ++) {

   selectedRowData = myGrid.getRowData(selectedRowIds[selectedRowIndex]);

}

3
Arun Garg

ちょうどこれをチェックアウト:

ソリューション1:

サブグリッド関数では、次のように記述する必要があります。

var selectid = $(this).jqGrid('getCell', row_id, 'id');
alert(selectid);

どこ row_idは、サブグリッドでパラメーターとして定義する変数です。 idは、セルの値を取得する列名です。

ソリューション2:

アラートでJqgrid行IDを取得する場合は、主キーIDをkey:true ColModels。したがって、アラートでデータベースIDの値を取得します。このような :

{name:"id",index:"id",hidden:true, width:15,key:true, jsonmap:"id"},
1

あなたはde varsを宣言する必要があります...

var selectedRowId = $('#list').jqGrid ('getGridParam', 'selrow');
var columnName = $('#list').jqGrid('getCell', selectedRowId, 'columnName');

var nombre_img_articulo = $( '#list')。jqGrid( 'getCell'、selectedRowId、 'img_articulo');

1
Sici