【问题标题】:dojox.grid.DataGrid Data display.dojox.grid.DataGrid 数据显示。
【发布时间】:2012-03-05 12:33:34
【问题描述】:

我有这个 JSP 页面。当我运行它时,我没有收到任何错误。但也不要使用数据网格获取数据。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ page import="MyPackage.PopulateTextbox" %>
<%@ page import="java.sql.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<style type="text/css">
@import "http://localhost:8080/2_8_2012/js/dojo/resources/dojo.css";

@import "http://localhost:8080/2_8_2012/js/dijit/themes/nihilo/nihilo.css";
</style>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/dojo/1.4/dojo/dojo.xd.js" djConfig="isDebug: false, parseOnLoad: true"></script>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script type="text/javascript">

dojo.require("dojox.grid.DataGrid");
dojo.require("dojo.data.ItemFileReadStore");
dojo.require("dojo.data.ItemFileWriteStore");
</script>
<%
String temp1;
PopulateTextbox obj = new PopulateTextbox();
temp1 = obj.method();
request.setAttribute("variable", temp1); 
%>

<script type="text/javascript">
dojo.ready(function(){
var myVar = <%= request.getAttribute("variable") %>
var storedata={
            identifier:"table1",
            label:"name",
            items: myVar
    };

var store = new dojo.data.ItemFileReadStore({data: storedata});
    var gridStructure =[[

                      { field: "ID",
                            name: "ID_Emp",
                            width: "40%"
                      },
                      {
                          field: "Names",
                          name: "Name",
                          width: "40%"
                      }

                ]
          ];


     var grid = new dojox.grid.DataGrid({
            id: 'grid',
            store: store,
            structure: gridStructure,
            });
          //document.createElement('div'));

        /*append the new grid to the div*/
        //dojo.byId("gridDiv").appendChild(grid.domNode);

        /*Call startup() to render the grid*/
        grid.startup();
});
</script>

<title>Dojo Data</title>
</head>
<body>
<div jsid="grid" id="mygrid" dojoType="dojox.grid.DataGrid" title="Simple Grid" style="width: 500px; height: 150px;">
</div>


</body>
</html>

当我运行这个页面时。并转到查看源我得到以下内容::

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<style type="text/css"> 
@import "http://localhost:8080/2_8_2012/js/dojo/resources/dojo.css";

@import "http://localhost:8080/2_8_2012/js/dijit/themes/nihilo/nihilo.css";
</style>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/dojo/1.4/dojo/dojo.xd.js" djConfig="isDebug: false, parseOnLoad: true"></script>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script type="text/javascript"> 

dojo.require("dojox.grid.DataGrid");
dojo.require("dojo.data.ItemFileReadStore");
</script>


<script type="text/javascript"> 
var myVar = [{"ID":1,"Names":"Shantanu"},{"ID":2,"Names":"Mayur"},{"ID":3,"Names":"Rohit"},{"ID":4,"Names":"Jasdeep"},{"ID":5,"Names":"Rakesh"}];
var storedata={
            identifier:"table1",
            label:"name",
            items: myvar
    };
    var gridStructure =[{
    cells:[
                [
                      { field: "ID",
                            name: "ID_Emp",
                            width: "40%", styles: 'text-align: right;'
                      },
                      {
                          field: "Names",
                          name: "Name",
                          width: "40%", styles: 'text-align: right;'
                      }

                ]
          ]
    }];
</script>

<title>Dojo Data</title>
</head>
<body class=nihilo>

<div style="width: 400px; height: 300px;">
  <div data-dojo-type="dojo.data.ItemFileReadStore" data-dojo-id="countryStoreForGrid" data-dojo-props="data:storedata"></div>
  <div id="grid"
    data-dojo-type="dojox.grid.DataGrid"
    data-dojo-props="store:countryStoreForGrid,
    structure:'gridStructure',
    rowsPerPage:40">
  </div>
</div>

</body>
</html>

我在 myVar 中有数据(用于 JSP 页面中的项目),如查看源页面中所示。但是屏幕上仍然没有显示任何内容。我的 HTML BODY 标记中是否有任何错误。 ?请帮我解决一下这个。谢谢。

【问题讨论】:

    标签: jsp dojox.grid.datagrid


    【解决方案1】:

    尝试改变

    var storedata={
            identifier:"table1",
    

    var storedata={
            identifier:"ID",
    

    注意,identifier指定了item中的属性,作为数据中的唯一标识符

    详情请见http://livedocs.dojotoolkit.org/dojo/data/ItemFileReadStore

    【讨论】:

      【解决方案2】:

      您发布的 html 代码中有几个错误。

      商店数据中的标识符不正确(正如 Vijay 指出的那样)。

      myvar 与 myVar 不同

      我不相信 Dojo 1.4 使用 HTML5 数据属性,所以我更新了代码以使用 1.7

      我添加了网格样式表

      <html>
      <head>
      <style type="text/css"> 
         @import "http://ajax.googleapis.com/ajax/libs/dojo/1.7/dojo/resources/dojo.css";
         @import "http://ajax.googleapis.com/ajax/libs/dojo/1.7/dijit/themes/nihilo/nihilo.css";
         @import "http://ajax.googleapis.com/ajax/libs/dojo/1.7/dojox/grid/resources/Grid.css";
         @import "http://ajax.googleapis.com/ajax/libs/dojo/1.7/dojox/grid/resources/nihiloGrid.css";
      </style>
      
      <script src="http://ajax.googleapis.com/ajax/libs/dojo/1.7/dojo/dojo.js" data-dojo-  config="isDebug: true, parseOnLoad: true"></script>
      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
      <script type="text/javascript"> 
      
      dojo.require("dojox.grid.DataGrid");
      dojo.require("dojo.data.ItemFileReadStore");
      </script>
      
      <script type="text/javascript"> 
      var myVar = [{"ID":1,"Names":"Shantanu"},{"ID":2,"Names":"Mayur"},{"ID":3,"Names":"Rohit"},{"ID":4,"Names":"Jasdeep"},{"ID":5,"Names":"Rakesh"}];
      var storedata={
          identifier: "ID", // This is the property that gives a unique id accross all items.
          label:      "name",
          items:      myVar
      };
      var gridStructure =[[
        {
          field:  "ID",
          name:   "ID_Emp",
          width:  "40%", styles: 'text-align: right;'
        },
        {
          field:  "Names",
          name:   "Name",
          width:  "40%", styles: 'text-align: right;'
        }
      ]];
      </script>
      
      <title>Dojo Data</title>
      </head>
      <body class="nihilo">
      
      <div style="width: 400px; height: 300px;">
        <div data-dojo-type="dojo.data.ItemFileReadStore" data-dojo-id="countryStoreForGrid" data-dojo-props="data:storedata"></div>
        <div id="grid"
      data-dojo-type="dojox.grid.DataGrid"
      data-dojo-props="store:countryStoreForGrid, structure:gridStructure, rowsPerPage:40">
        </div>
      </div>
      
      </body>
      </html>
      

      【讨论】:

      • Ks..Thanks.. 将进行必要的更改,看看它是否有效。先生,除此之外,我在 标签中的 HTML 代码是正确的。我的意思是有什么我需要添加的,或者我忘记让我的 DojoDataGrid 工作了吗?
      • 先生你能帮我解决这个问题吗 :: stackoverflow.com/questions/9579428/…
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-23
      • 2013-03-06
      • 1970-01-01
      • 1970-01-01
      • 2012-03-03
      • 1970-01-01
      相关资源
      最近更新 更多