2016-10-02 2 views
0

Я новичок в jQuery jTable.Весь столбец не отображается при добавлении опции в набор полей, jtable и java servlet

Я хотел бы добавить dropbox в один из полей jTable. До того, как я добавил dropbox, содержимое набора слоев показывалось правильно. Но когда я добавляю функцию, которая извлекает список Dropbox из базы данных через мой сервлет, весь столбец больше не отображается. ниже - экран печати моей таблицы до и после добавления параметра параметра в мой набор полей. Я также размещаю часть своего .js и моего сервлета. Добавленный Dropbox работает правильно!

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    HashMap<String,String> data = new HashMap<String,String>(); 
    try { 
     Gson gson = new GsonBuilder().setPrettyPrinting().create(); 
     /** Code removed purposefully */ 
     // Convert array list to string 
     String myoptionList = gson.toJson(typeOfProfile); 

     // Return in the format required by jTable plugin 
     data.put("Result", "OK"); 
     data.put("Options",myoptionList); 

     response.setContentType("application/json"); 
     response.getWriter().write(gson.toJson(data)); 
    } catch (Exception ex) { 
     data.put("Result", "ERROR"); 
     data.put("Message", ex.getMessage()); 
     String error = gson.toJson(data); 
     response.getWriter().print(error); 
    } 
//}//end of if statement --if req-- 
} 

и вот мой Java Scripte код (JQuery)

labelProfile : { 
    title : 'Type Profile', 
    width : '10%', 
    edit : true, 
    options: function() { 
     var options = []; 
     var toSearch = "salut!" //this is just for testing dont mind this 

     if (cachedValue) { //Check for cache 
      return cachedValue; 
     } 

     $.ajax({ //If the cache is empty execute the following 
      type: "POST", 
      url: 'showProfileOptions', 
      dataType: 'json', 
      data:{toSearch:toSearch}, 
      async: false, 
      success:function(data){ 
       if(data.Result != 'OK'){ 
        alert(data.Message) 
        return; 
       } 
       options = jQuery.parseJSON(data.Options); 
      } 
     }); 

    return cachedValue = options; 
}//end function 

И, наконец, трафаретная печать таблицы до и после добавления параметра внутри набора полей.

Я попытался добавить условие, такое, как если бы (data.source == 'list') не поставить Dropbox.

Любые советы?

+0

Правильно отредактируйте свой код, ваш '{}' для 'if-else' не совпадает. – Samundra

ответ

0

Я, наконец, получил его. Значения в списке опций должны включать в себя текущее значение (выбирается один вариант до выбора), иначе jTable ничего не отобразит.

Смежные вопросы