aftersavefunc JQGrid, вызываемый до вызова бэкэнд

import java.util.Date;
import java.util.Random;

public class RandomGenerator {

  private static Random random = new Random((new Date()).getTime());

    public static String generateRandomString(int length) {
      char[] values = {'a','b','c','d','e','f','g','h','i','j',
               'k','l','m','n','o','p','q','r','s','t',
               'u','v','w','x','y','z','0','1','2','3',
               '4','5','6','7','8','9'};

      String out = "";

      for (int i=0;i<length;i++) {
          int idx=random.nextInt(values.length);
          out += values[idx];
      }
      return out;
    }
}
1
задан Standage 13 July 2018 в 15:41
поделиться

1 ответ

Ваша основная ошибка при использовании

onclick=\"jQuery('#evGrid').saveRow('" + cl + "', '', '', '', reload());\"

вместо

onclick=\"jQuery('#evGrid').saveRow('" + cl + "', '', '', '', reload);\"

reload - это функция обратного вызова, которая будет вызываться jqGrid. Если вы используете reload(), тогда ваш код вызывает reload с пустым параметром, прежде чем jqGrid сделает это (jqGrid не получит ссылку на функцию вообще и не получит undefined, возвращенный из reload()).

1
ответ дан Oleg 17 August 2018 в 12:28
поделиться
  • 1
    Спасибо, что я сделал это, сделав это незначительное изменение – Standage 18 July 2018 в 15:47
  • 2
    @Standage: Добро пожаловать! В общем, многие части вашего кода должны быть изменены. Изменение содержимого сетки в цикле с использованием setRowData является самым медленным способом заполнения сетки. Вместо этого лучше использовать пользовательский форматировщик или предопределенные форматы, такие как formatter: "actions". С другой стороны, когда-то некогда переписывать старый код, и важно просто заставить его работать. – Oleg 18 July 2018 в 15:52
Другие вопросы по тегам:

Похожие вопросы: