Данные не отображаются в dojox.data.Datagrid по событию щелчка.

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

<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"}]

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


person Shantanu Tomar    schedule 16.03.2012    source источник


Ответы (1)


Изменять

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

to

<div id="gridDiv" ...

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

person Vijay Agrawal    schedule 16.03.2012