This question is locked. New answers and comments are not allowed.
Hi kendo ui team,
On expand i make post request which returns list from a hashmap depending on requested id. Each rendered list is a nested row inside grid with unique id.
Issue is while expending each row i get only 1st nested row updated with results basically row id reference is missing and grid widget doesn't know which nested row to update. Any suggestions and recommendations appreciated.
here is some code:
JSP
Java servlet:
On expand i make post request which returns list from a hashmap depending on requested id. Each rendered list is a nested row inside grid with unique id.
Issue is while expending each row i get only 1st nested row updated with results basically row id reference is missing and grid widget doesn't know which nested row to update. Any suggestions and recommendations appreciated.
here is some code:
JSP
<% HashMap<String, Object> data = new HashMap<String, Object>(); data.put("itemId", "#=itemId#");%><kendo:grid name="item" pageable="true" detailTemplate="template"> <kendo:dataSource> <kendo:dataSource-transport> <kendo:dataSource-transport-read url="http://localhost:8080/GrubbyUI/api/items" /> </kendo:dataSource-transport> <kendo:dataSource-schema data="data" total="total" /> </kendo:dataSource> <kendo:grid-columns> <kendo:grid-column title="id" field="itemId"></kendo:grid-column> </kendo:grid-columns></kendo:grid><kendo:grid-detailTemplate id="template"> <kendo:grid name="innerData"> <kendo:dataSource> <kendo:dataSource-transport> <kendo:dataSource-transport-read url="http://localhost:8080/GrubbyUI/api/items" data="<%=data %>" type="POST" contentType="application/json "/> <kendo:dataSource-transport-parameterMap> <script> function parameterMap(options) { return JSON.stringify(options); } </script> </kendo:dataSource-transport-parameterMap> </kendo:dataSource-transport> </kendo:dataSource> <kendo:grid-columns> <kendo:grid-column title="id" field="itemId"></kendo:grid- <kendo:grid-column title="Date Added" field="dateAdded"></kendo:grid-column> </kendo:grid-columns> </kendo:grid></kendo:grid-detailTemplate>protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { // objects for keeping data structures DataModel result = new DataModel(); DataSourceResult data = new DataSourceResult(); Gson gson = new Gson(); data.setData(result.listOfItems()); data.setTotal(result.getTotal()); response.setContentType("application/json"); response.getWriter().write(gson.toJson(data)); } catch (Exception e) { response.sendError(500); e.printStackTrace(); }}/** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Gson gson = new Gson(); // some random data for testing purposes HashMap<String, List<Item>> data = new HashMap<String, List<Item>>(); // response data struct List<Item> l1 = new ArrayList<Item>(); List<Item> l2 = new ArrayList<Item>(); BufferedReader reader = request.getReader(); String line = reader.readLine(); Map<String, String> map = gson.fromJson(line, Map.class); String selectedId = map.get("itemId"); System.out.println(selectedId); // init data var Item item1 = new Item("lib", "#1", false, "date"); Item item2 = new Item("lib 2", "#2", true, "date"); l1.add(item1); l1.add(item2); data.put("1", l1); item1 = new Item("lib 3", "#3", true, "date"); item2 = new Item("lib 4", "#4", false, "date"); l2.add(item1); l2.add(item2); data.put("2", l2); response.setContentType("application/json"); response.getWriter().write(gson.toJson(data.get(selectedId)));}