Пытаясь сделать AJAX-вызов, отобразите данные JSON с помощью jqgrid.

У меня есть следующие json-данные после ajax-вызова к struts2 action-class:

{"jsonData":[{"age":1,"name":"Aifa"},{"age":2,"name":"Afraa"},{"age":27,"name":"Zafar"}],"searchId":0,"searchName":""}

function setAjaxOutput()    {
        if(httpObject.readyState == 4)  {
            document.getElementById('intValueDiv').innerHTML = httpObject.responseText;

            var jsonString = httpObject.responseText;
            alert(jsonString);
            var jsonString2 = JSON.parse(jsonString);            
            alert(jsonString2.jsonData[2].name);           
          }

     }

Данные JSON будут в httpObject.responseText.

Теперь, используя jqgrid, похоже, что приведенный выше код не требуется, но я пока не могу понять, как выполнить вызов ajax с использованием jqgrid, получить данные json и отобразить в таблице.

Я пытаюсь отобразить, только jsonData-массив, возвращенный из action-class, в grid-формате, используя jqgrid. Код ниже.

[{"age":1,"name":"A"},{"age":2,"name":"Ab"},{"age":3,"name":"abc"}]

Я могу позвонить click(), но хотел бы позвонить, 'jQuery("#list2").jqGrid(),

Не могли бы вы сообщить мне, как я могу внести изменения, чтобы я мог:

1) отправить запрос ajax с:

url: 'callAJax.action? start = 1 & t =' + Math.random () + 'testFlag = 1'

Should single quotes be replaced with double quotes? Please let me know.

Кроме того, как я могу найти, divId1 или divId2, щелкают ниже.

  var $target = $(event.target);
  if( $target.is("div") ) { // div is tag, how to check for id.

    testFlag=1/2;
  }

2) И, когда данные json отображаются в сетке, я хотел бы добавить кнопку для каждой строки, которую я бы хотел щелкнуть, чтобы прочитать данные строки и выполнить Ajax-вызов для URL-адреса класса действия.

Пожалуйста, дайте мне знать, как этого можно достичь.

<%@taglib prefix="s" uri="/struts-tags" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>

        <head>
            <title>AJAX JSP PAGE</title>
            <link rel="stylesheet" href="styles/jqx.base.css"
            type="text/css" />
            <link rel="stylesheet" href="styles/jqx.classic.css" type="text/css" />
            <script type="text/javascript" src="jquery-1.7.2.min.js"></script>
            <script type="text/javascript" src="jqxcore.js"></script>
            <script type="text/javascript" src="jqxbuttons.js"></script>
            <script type="text/javascript" src="jqxscrollbar.js"></script>
            <script type="text/javascript" src="jqxmenu.js"></script>
            <script type="text/javascript" src="jqxgrid.js"></script>
            <script type="text/javascript" src="jqxdata.js"></script>
            <script type="text/javascript">
                var start = 0;
                var idAndName = "";
                var rowId = 0;
                var searchId = 0;
                var searchName = "";


                $(document)
                    .ready(function () {


                    alert("document loaded.");


                    $("#editgrid")
                        .jqGrid({

                        url: 'callAJax.action?t=1',
                        datatype: "json",
                        myType: 'GET',
                        colNames: ['name', 'age'],

                        colModel: [

                        {
                            name: 'name',
                            index: 'name',
                            width: 80,
                            editable: true,
                            editoptions: {
                                size: 10
                            }
                        },

                        {
                            name: 'age',
                            index: 'age',
                            width: 90,
                            editable: true,
                            editoptions: {
                                size: 25
                            }
                        }

                        ],

                        rowNum: 10,
                        rowList: [10, 20, 30],
                        pager: '#pagered',
                        sortname: 'name',
                        viewrecords: true,
                        sortorder: "desc",
                        caption: "Editing Example",
                        editurl: "index.jsp"

                    });

                    $("#bedata")
                        .click(function (event) {

                        alert("Inside click function.");
                        jQuery("#editgrid")
                            .jqGrid('getGridParam', 'selrow');

                    });

                });
            </script>
        </head>

        <body>
            <center>
                 <h1>
                Use Ajax in Struts2
            </h1>

                <br/>
                <br/>
                <table id="editgrid"></table>
                <div id="pagered"></div>
                <input type="button" id="bedata" value="Edit Selected" />
            </center>
            <br/>
        </body>

    </html>

Что происходит, когда я бегу?

Ответ:

Когда я удаляю $("#editgrid")..jqGrid({}) полностью, я вижу, сообщение "документ загружен".

Когда я нажимаю кнопку, я вижу сообщение "Функция внутреннего щелчка".

Но когда я добавляю частично или полностью, $("#editgrid")..jqGrid({}) Блок, я вижу только "документ загружен", но при нажатии кнопки сообщение "Функция внутреннего щелчка" не появляется.

Пожалуйста, дайте мне знать, если вы хотите получить больше информации. Как всегда, спасибо!

0 ответов

Другие вопросы по тегам