首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dojo xmlstore和数据网格项计数

dojo xmlstore和数据网格项计数
EN

Stack Overflow用户
提问于 2015-10-15 20:47:00
回答 1查看 276关注 0票数 0

我有一个xml存储,它调用一个url并从数据库中获取数据。当从数据库返回数据时,它必须显示在数据网格中。当没有数据时,它必须显示适当的错误消息。我有下面的js文件。

代码语言:javascript
复制
require(["dojo/date/locale","dojox/grid/DataGrid","dojox/data/XmlStore","dijit/registry", "dojo/fx","dijit/form/ValidationTextBox", "dojo/dom-form", "dojo/dom", "dojo/on",  "dojo/request","dojox/xml/parser", "dojo/ready","dojo/domReady!"],
        function(locale,DataGrid,XmlStore,registry,coreFx,dijit, domForm, dom, on, request, parser, ready){

    var format;
    var siteId;
    var phoneNum;
    var grid;
    var dataGrid=new DataGrid({
        autoWidth:true,
        autoHeight:true,
        clientSort:true,
                structure: [
                    {name:"Order ID", field:"orderId"},
                    {name:"Sender", field:"senderName"},
                    {name:"Recipient", field:"recipientName"},
                    {name:"Phone Number", field:"phone"},
                    {name:"Gift Amount", field:"amount"}
                    ]
    },"showGrid");
    dataGrid.startup();

    on(dom.byId("submitButton"), "click", function(){

        ready(function()
                {
            submitValue();

                });
    });

    on(dom.byId("printGiftcard"), "click", function(){

        ready(function()
                {

            window.print();
                });
    });


    function submitValue(){

        grid=registry.byId("showGrid");
        grid.set("store", null);
        grid.filter();
        document.getElementById("outcomeMessage").innerHTML="";
        var orderNumber= document.getElementById("orderNumber");
        var num=orderNumber.value;
        if(num==""){
            document.getElementById("outcomeMessage").innerHTML="Please enter Order number";
            return;
        }

        var myStore= new XmlStore({
            url:"/hello/"+num,
            urlPreventCache : false,
            query:{},
            queryOptions:{},
            onComplete:sizeCount
        });

        var sizeCount = function(items,request){
            console.log(items.length);
            if(items.length == 0){
                document.getElementById("outcomeMessage").innerHTML="data not found";
            }

        }
        var request = myStore.fetch({query:{},queryOptions:{},onComplete:sizeCount});


        grid=registry.byId("showGrid");
        grid.set("store", myStore);
        //grid.filter();



    }

});

The problem is it is calling database twice now in order to check the number of items returned.Once to set the store for the grid and other to check if the data returned is null.Can someone give me a simplified solution for this.

Thanks
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-16 13:49:17

我终于解决了我的问题。

代码语言:javascript
复制
    dojo.connect(dataGrid,"_onFetchComplete",function(items){

console.log(datagrid.rowCount);
        }
    })

谢谢!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33158248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档