سؤال

أرغب في hava a dojo dojox.grid.datagrid مع بياناته من servlet.

المشكلة: لا يتم عرض البيانات التي تم إرجاعها من Servlet ، فقط الرسالة "آسف ، حدث خطأ".

إذا قمت فقط بوضع سلسلة JSON في HTML ، فهي تعمل. arrrrggh.

هل يمكن لأي شخص مساعدتي!

شكرا جيف بورتر

رمز servlet ...

public void doGet(HttpServletRequest req, HttpServletResponse resp) {
    res.setContentType("json");
    PrintWriter pw = new PrintWriter(res.getOutputStream());
    if (response != null) pw.println("[{'batchId':'2001','batchRef':'146'}]");
    pw.close();
}

رمز HTML ...

    <div id="gridDD" dojoType="dojox.grid.DataGrid" 
    jsId="gridDD" style="height: 600x; width: 100%;" 
    store="ddInfo" structure="layoutHtmlTableDDDeltaSets">
    </div>      

    var rawdataDDInfo = ""; // empty at start
    ddInfo = new dojo.data.ItemFileWriteStore({
        data: {
            identifier: 'batchId',
            label: 'batchId',
            items: rawdataDDInfo
        }
    });
    <script>
    function doSelectBatchsAfterDate() {
    var xhrArgs = {
        url: "../secure/jsonServlet",
        handleAs: "json",
        preventCache: true,
        load: function(data) {
        var xx =dojo.toJson(data);
            var ddInfoX = new dojo.data.ItemFileWriteStore({data: xx});
            dijit.byId('gridDD').setStore(ddInfoX);
        },
        error: function(error) {
                alert("error:" + error);
        }
    }

    //Call the asynchronous xhrGet
    var deferred = dojo.xhrGet(xhrArgs);
    }
    </script>
<img src="go.gif" onclick="doSelectBatchsAfterDate();"/>
هل كانت مفيدة؟

المحلول

عند إنشاء ملف dojo.data.ItemFileWriteStore باستخدام بيانات JSON التي تم إرجاعها من الخادم. يمكنك فقط تقديم العناصر ، لا تزال بحاجة إلى تحديد البيانات الوصفية. يجب أن يكون الرمز الصحيح كما يلي.

var ddInfoX = new dojo.data.ItemFileWriteStore({
    data: {
        identifier: 'batchId',
        label: 'batchId',
        items: xx
    }
});

وأنت لا تحتاج إلى dojo.toJson الوظيفة التي تحول كائن JSON إلى سلسلة JSON. ال dojo.data.ItemFileWriteStore يتطلب كائن JSON كمعلمة ، وليس سلسلة JSON.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top