0

Я хочу отображать данные в сетке данных. Данные извлекаются по URL-адресу с использованием метода $ .get как типа JSon. Я не получаю никаких ошибок. Но не получать сетку данных. Вот мне код сценария ::Данные не отображаются в dojox.data.Datagrid при событии click.

<script type="text/javascript"> 
$("document").ready(function(){ 
    $('#contentpaneid').bind('click', getInfoFromServer); 
    function getInfoFromServer(){ 
     $.get("http://localhost:8080/2_8_2012/jsp/GetJson.jsp?random=" + new Date().getTime(), function (result) { 
      success:postToPage(result), 
      alert('Load was performed.'); 
      },"Json"); 

    function postToPage(data){ 
    alert(data);  
    var storedata = { 
     identifier:"ID", 
     items: data //[{"ID":1,"Names":"Shantanu","Email":"[email protected]"},{"ID":2,"Names":"Mayur","Email":"[email protected]"},{"ID":3,"Names":"Rohit"},{"ID":21,"Names":"Rakesh","Email":"askjhjk"}] 

}; 

    var store1 = new dojo.data.ItemFileWriteStore({data: storedata}) ; 
    var gridStructure =[[ 

          { field: "ID", 
           name: "ID_Emp", 
           width: "20%", 
           classes:"firstName" 
          }, 
          { 
           field: "Names", 
           name: "Name", 
           width: "20%", 
           classes: "firstName" 
          }, 
          { field: "Email", 
           name: "Mail", 
           width: "20%", 
           classes:"firstName" 
          } 

        ] 
       ]; 

    var grid = new dojox.grid.DataGrid({ 

     store: store1, 
     structure: gridStructure, 
     rowSelector: '30px', 
     selectionMode: "single", 
     autoHeight:true, 
     columnReordering:true 

     },'gridDiv'); 


    grid.startup(); 
    dojo.connect(grid, "onSelectionChanged", grid, function(){ 
       var items = grid.selection.getSelected(); 



      // do something with the selected items 
       dojo.forEach(items, function(item){ 
        var v = grid.store.getValue(item, "Names"); 

        function showDialog() { 
         dojo.require('dijit.Tooltip'); 
         dijit.byId("terms").show(); 
        } 

        showDialog(); 
        }, grid); 

      }); 


      dojo.connect(grid, "onCellClick", grid, function sendmail(){ 
       var items = grid.selection.getSelected(); 

       dojo.forEach(items, function(item){ 
        var v1 = grid.store.getValue(item, "Email");  
        alert(v1); 
        request.setAttribute("variablemail", v1); 
      }); 
    }); 

}; 
}; 
}); 
</script> 

Мой код разметки ::

<div id="contentpaneid" dojoType="dijit.layout.ContentPane" title="Pending Activities" style="background-image: url('http://localhost:8080/2_8_2012/images/17.png');"> 

<div data-dojo-id="gridDiv" title="Simple Grid" style="width:900px; height:200px;"> 

Когда я нажимаю внутри панели содержимого я получаю мое предупреждение (данные) вывод как при получении данных в формате JSON через $ .get метод ::

[Object object][Object object][Object object](The number of [Object object] depends on number of entries in Database) 

И выход при получении данных в виде текста является ::

[{"ID":1,"Names":"Shantanu","Email":"[email protected]"},{"ID":2,"Names":"Mayur","Email":"[email protected]"},{"ID":3,"Names":"Rohit"},{"ID":21,"Names":"Rakesh","Email":"askjhjk"},{"ID":22,"Names":"Hello"}] 

Теперь, когда я обновляю данные, я получаю свои данные alert ryt. i.e значение обновляется в alert (data). Моя функция $ .get работает нормально. А также получение предупреждения (сообщение «Загрузка было выполнено»). Но сетка не отображается. Это не данные. Но сетка также не отображается. Появляются только предупреждения. это оно. Где я делаю ошибку? И я должен получить данные как текст или JSON, чтобы значения были правильно переданы на «items:». пожалуйста помоги. я хочу, чтобы в событии клика сетка обновлялась в соответствии с изменениями в базе данных. Благодарю.

ответ

0

Изменить

<div data-dojo-id="gridDiv"... 

в

<div id="gridDiv" ... 

Обратите внимание, что данные-додзё-идентификатор предназначен для использования для создания глобальной переменной JS, которая содержит виджет. В вашей ситуации вы заполняете datagrid и спрашиваете dojo, чтобы заменить узел DOM идентификатором gridDiv с помощью datagrid. Поскольку додзё не может найти такой узел, вы не видите datagrid

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