Значение переменной Javascript потеряно

Mariano спросил: 28 марта 2018 в 02:45 в: javascript

Мне нужна помощь.

У меня есть две решетки:

<table id="section"></table>
<div id="pager_sec"></div>
<table id="details"></table>
<div id="pager_det"></div>

И эта переменная:

<script type="text/javascript">var section_id;

Установите переменную с строкой, выбранной в разделе. предупреждение показывает правильное значение:

jQuery("#section").jqGrid({    onSelectRow: function (id) {            section_id = id;
            alert(section_id);
    }});

Но в editData операции добавления navgrid переменная не имеет значения:

jQuery("#details").jqGrid({});jQuery("#details").navGrid('#pager_det',{add:true},{editData:{num_section: section_id});

Спасибо!


1 ответ

Oleg ответил: 28 марта 2018 в 02:51

Вы должны использовать функции обратного вызова внутри editData вместо свойств:

editData: {
    num_section: function () { return section_id; }
}

If заставит использовать текущий значение переменной section_id. Ваш текущий код использует значение переменной section_id в момент вызова метода navGrid.

Oleg ответил: 28 марта 2018 в 02:56
@Mariano: Добро пожаловать! Вы пробовали изменения? Ваша проблема решена сейчас?
Mariano ответил: 28 марта 2018 в 02:53
Спасибо Олегу за помощь!
Mariano ответил: 28 марта 2018 в 03:18
Я не могу попробовать до понедельника. Я дам тебе знать.
Oleg ответил: 28 марта 2018 в 03:24
@Mariano: Понятно. Нет проблем.
Mariano ответил: 30 марта 2018 в 08:03
Работает отлично ... спасибо еще раз Олег.