jqGrid - Можно ли получить свойства объекта ondblClickRow?

У меня есть следующий jqGrid:

Я делаю вызов AJAX для отображения элементов в этой сетке. Я хотел показать больше элементов в сетке (та же вкладка) и сделал еще один вызов AJAX.

Итак, я создал 2 массива. Первый массив хранит результат Ajax Call 1, второй массив хранит результат Ajax Call 2.

Я объединил эти массивы и отобразил их в сетке:

      var test3 = test1.concat(test2);
thegrid.addJSONData(test3);

Пока все хорошо, единственная проблема заключается в том, что когда я хочу дважды щелкнуть элемент в сетке, он может использовать только один и тот же путь для каждого элемента, что означает, что он может открывать только одну форму, а не разные.

Это потому, что при нажатии на сетку вызывается эта функция:

      ondblClickRow: function (rowid, iRow, iCol, e) {
    onDoubleClickGrid(rowid, iRow, iCol, e, divname, listname);
}

Вот вся функция:

      function onDoubleClickGrid(rowid, iRow, iCol, e, divname, listname, useFormToOpen) {

    var rowData = $("#" + divname).getRowData(rowid);
    var curID = rowData.Id;
    var useForm = "EditForm.aspx";

    if (checkNull(useFormToOpen)!="") {
        useForm = useFormToOpen;
    }

    var curPath = "/MM/Lists/" + listname;
    // var curPath = "/nderungsantrag/Lists/" + listname;
    var url = curPath + "/" + useForm + "?ID=" + curID;
    openInDialog(dlgWidth, dlgHeight, true, true, true, url);
}

Я пробовал работать с флагами, но здесь они не сработают, потому что все объекты находятся в объединенном массиве, и он не может их различить.

Можно ли получить значения объекта для элемента, который был нажат на dblClickRow? Потому что тогда я мог бы использовать цикл for и проверять свойства объекта. В зависимости от того, какое у него свойство, я мог бы изменить путь. Или есть другой способ добиться этого?

1 ответ

OndblClickRow имеет событие параметра (4). Здесь вы можете получить такой элемент (если я правильно понимаю требование):

      ondblClickRow : function (rowid, iRow, iCol, e) {
    var target = e.target || e.srcElement; // this is what you need
    ....
}

Ваш curPath - это комбинация одного постоянного значения и одной переменной

      var curPath = "/MM/Lists/" + listname

Если переменная listname не изменяется во время двойного щелчка по строке, у вас всегда будет один и тот же curPath. Я не вижу, если вы меняете его при двойном щелчке строки.

Другие вопросы по тегам