So erhalten Sie einen jqGrid-Wert für ausgewählte Zeilenzellen

Lesezeit: 4 Minuten

So erhalten Sie einen jqGrid Wert fur ausgewahlte Zeilenzellen
Saad

Weiß jemand, wie man den Zellenwert der ausgewählten Zeile von JQGrid erhält? Ich verwende mvc mit JQGrid, ich möchte auf den Wert der versteckten Spalte der ausgewählten Zeile zugreifen?

  • Sie können den folgenden Thread besuchen. Es hat die vollständige Antwort stackoverflow.com/a/62043961/3073945

    – Md. Sajedul Karim

    27. Mai ’20 um 13:19

Zuerst bekommst du die rowid der ausgewählten Zeile bezüglich getGridParam Methode und ‘sellow’ als Parameter und dann können Sie verwenden getCell um den Zellenwert aus der entsprechenden Spalte zu erhalten:

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

Der 'columnName' sollte derselbe Name sein, den Sie in der verwenden 'name' Eigentum der colModel. Wenn Sie Werte aus vielen Spalten der ausgewählten Zeile benötigen, können Sie verwenden getRowData anstatt getCell.

  • Was muss ich tun, wenn ich den Wert aus dem Unterraster erhalten möchte? einfach dasselbe mit der Unterraster-ID machen?

    – Saad

    9. August ’11 um 11:21

  • @Saad: Es gibt verschiedene Möglichkeiten, wie Sie Subgrid verwenden können. Bei der Verwendung Unterraster als Raster Das Unterraster ist nur ein weiteres Raster, sodass Sie damit alles wie mit dem Hauptraster machen können. Jedes Gitter wird normalerweise durch die ID des entsprechenden identifiziert <table> Element. Sie sollten also nur die ID des Rasters verwenden, die Sie benötigen.

    – Oleg

    9. August ’11 um 11:46

  • Gibt es eine Möglichkeit, diese Zellenwerte außerhalb des Codes zu verwenden? Sie möchten es als Bearbeitungsparameter in ‘navgrid’ verwenden

    – Saad

    11. August ’11 um 5:46

  • @Saad: schau mal hier

    – Oleg

    11. August ’11 um 5:48

  • Sehen Sie sich dieses Szenario an: stackoverflow.com/questions/7022746/…

    – Saad

    11. August ’11 um 11:39

Sie können auch auf diese Weise verwenden

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

  • Dies gibt den gesamten HTML-Code der Zelle zurück und nicht den Wert

    – Osama Yaccoub

    13. Feb. ’17 um 11:38

Um es hinzuzufügen, können Sie auch einen jqGrid-Zellenwert basierend auf der rowID plus dem Spaltenindex (anstelle des Spaltennamens) abrufen:

Um den Wert in der vierten Spalte (Spaltenindex # 3) für die Zeile mit der Primärschlüssel-ID 1234 abzurufen, könnten wir also Folgendes verwenden:

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

Übrigens, zu einem völlig unabhängigen Thema (aber bitte stimmen Sie mich nicht ab):

Mir war nicht klar, dass Sie Textfelder relativ einfach mit Ihrem jqGrid verknüpfen können, damit Ihre Benutzer sofort suchen können, ohne den Suchdialog öffnen zu müssen.

Bildbeschreibung hier eingeben

Dazu benötigen Sie ein wenig HTML wie folgt:

<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>

Und ein bisschen JavaScript wie folgt:

$("#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 }]);
}

Dies ist ein echter Game-Changer für mich … es macht jqGrid wirklich viel benutzerfreundlicher.

Benutzer können sofort mit der Eingabe ihrer Suchzeichenfolge beginnen, anstatt den Suchdialog öffnen zu müssen, denken Sie daran, den Operator in “enthält” zu ändern, dann mit der Eingabe zu beginnen und den Suchdialog wieder zu schließen.

du musst de vars deklarieren…

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

var nombre_img_articulo = $(‘#list’).jqGrid(‘getCell’, selectedRowId, ‘img_articulo’);

Einfach zur Kasse gehen:

Lösung 1:

In Subgrid Function müssen Sie Folgendes schreiben:

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

Wo row_id ist die Variable, die Sie in subgrid als Parameter definieren. Und id ist der Spaltenname, den Sie den Wert der Zelle erhalten möchten.

Lösung 2:

Wenn Sie eine Jqgrid-Zeilen-ID in der Benachrichtigung erhalten, legen Sie Ihre Primärschlüssel-ID fest als key:true In ColModels. Sie erhalten also den Wert Ihrer Datenbank-ID im Alert. So was :

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

.

305750cookie-checkSo erhalten Sie einen jqGrid-Wert für ausgewählte Zeilenzellen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy