2014-12-30 3 views
0

Я хочу выполнить событие щелчка по строкам, данные Json поступают из сервлета, который является данными contaainig, число рулонов - это уникальное поле, через которое я хочу открыть pdf-документ, который сам по себе называется номером рулона. Пожалуйста, помогите мне сделать этоСоздание строк сетки делает какое-то событие при нажатии, как открытие любого документа, скажем, pdf в DOJO (набор инструментов на основе JavaScript)

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
     pageEncoding="ISO-8859-1" 
    %> 
    <!DOCTYPE html> 
    <html> 
    <head> 
    <script> 

    function onReportTypesSelect() 
    { 
     if(getDijitValue('data_types') != 'Select') 
      { 

      if(getDijitValue('data_types') == 'class_level') 
      { 
       require([ 
          "dojo/store/JsonRest", 
          "dojo/store/Memory", 
          "dojo/store/Cache", 
          "dojox/grid/DataGrid", 
          "dojo/data/ObjectStore", 
          "dojo/query", 
          "dojo/domReady!" 

         ], function(JsonRest, Memory, Cache, DataGrid, ObjectStore, query){ 
          var userStore, dataStore, grid; 
          userStore = new Cache(JsonRest({target: "<%=request.getContextPath()%>" + "/data/classServlet"}), new Memory()); 
          grid = new DataGrid({ 
           id:"class_level_grid", 
           store: dataStore = new ObjectStore({objectStore: userStore}), 
           structure: [ 
              {name: 'Roll Number', field: 'roll', width: 'auto', defaultValue: ""}, 
              {name: 'Name', field: 'name', width: '100px', defaultValue: ""}, 
              {name: 'Class', field: 'class', width: '75px', defaultValue: ""} 
           ], 
          style:"font-family: calibri, Garamond, Comic Sans; font-size: 10;", 
          selectionMode:'single', 
          autoHeight: 10, 
          rowsPerPage:40, 
          rowSelector:'20px', 
          selectable: true 
          } 

          , "class_level_grid_div"); // make sure you have a target HTML element with this id 
          grid.startup(); 

         }); 

      } 
    } 
    } 
    </script> 
    </head>`enter code here` 
    <body> 
    <div id="data_types" data-dojo-type="dijit/form/Select" style="width: 200px;" onchange="onReportTypesSelect()"> 
         <span data-dojo-value="Select"><b>Select</b></span> 
         <span data-dojo-value="class_level"><b>class Level</b></span> 
    </div> 
    <div id="class_level_grid_div" style="width: 95%; height: 90%;"> </div> 
    </div> 
    </body> 
    </html> 

ответ

0

Самый простой способ сделать то, что вы хотите, чтобы установить onClickhandler для строк.

Мне нужно было выделить сингл Особенности нашего сервиса, когда они были выбраны и сохранены в сетке. Это мой Workarround, может быть, это поможет вам!

OnClickZoom = on(yourGridName,"RowDblClick", function(evt){ 
      //get the clicked rowindex 
      var idx = evt.rowIndex, item = this.getItem(idx); 
      // get a value out of the item 
      var value = this.store.getValue(item, "yourFieldName"); 
      //highlight geometry 
      highlightGeometry(value, true); 
      }); 

В вашем случае вы должны получить свой номер рулона или поле, которое может быть использовано для открытия PDF-файла, который вам нужен. Что-то вроде

"..//myMenu/myPDF/"+theFileName+".pdf"; 

С уважением

+0

Спасибо за вашу помощь. вы можете помочь мне в дальнейшем: возможно ли открыть любой файл/текстовый файл в формате Javascript/DOJO для редактирования, если да. Пожалуйста, скажите мне, как это сделать. – bhanuj