2012-06-02 89 views
0

我有一个XML文件,其中包含一组数据,并且必须在HTML页面的许多dojo内容窗格之一中表示。我试过dojox.grid.DataGrid,它的工作原理;但是由于数据网格通常用于表示表格数据,我不想使用数据网格。在dojo中显示数据

是否有任何其他方式以简单的格式表示这些数据?

XML文件是这样的:

<Summary> 
    <neName>abc</neName> 
    <neType>pqr</neType> 
    <neRelease>2.0</neRelease> 
    <neAddress>10.10.82.105</neAddress> 
    <supervisionState>SUPERVISED</supervisionState> 
    <operationalState>ENABLED</operationalState> 
    <alignmentState>ALIGNED</alignmentState> 
    <criticalAlarms>0</criticalAlarms> 
    <majorAlarms>0</majorAlarms> 
    <minorAlarms>0</minorAlarms> 
    <noOfShelves>5</noOfShelves> 
</Summary> 

我想这个数据来表示这样的事情:

enter image description here

回答

1

如果你感觉活泼,你可以做一个排序通用,XML数据的部件。这是我从前一个例子。

dojo.declare("foo.XmlDisplay", dijit._Widget, { 

    postCreate: function() 
    { 
     this.inherited(arguments); 
     dojo.xhrGet({ 
      url: this.href, 
      handleAs: "xml", 
      load: dojo.hitch(this, "setData") 
     }); 

    }, 

    setData: function(data) 
    { 
     // All items with a xmldisp-tag attribute should get data 
     dojo.query("*[data-xmldisp-tag]", this.containerNode).forEach(
      function(item) { 
       var tag = dojo.attr(item, "data-xmldisp-tag"); 
       var value = data.getElementsByTagName(tag); 
       if(value.length == 1) item.innerHTML = value[0].textContent; 
       else console.warn("No data in xml for",tag); 
      } 
     ); 
    } 
}); 

然后,您可以使用它像这样在你的HTML(即小部件不关心你如何显示的数据,它只是使用给定的标记名称从服务器的XML查找数据):

<div data-dojo-type="foo.XmlDisplay" href="/MyXmlStuff?id=42"> 
    <dl> 
     <dt>NE name</dt><dd data-xmldisp-tag="nename">-</dd> 
     <dt>NE type</dt><dd data-xmldisp-tag="netype">-</dd> 
    </dl> 
    <dl> 
     <dt>Alarms</dt><dd data-xmldisp-tag="majoralarms">-</dd> 
     <dt>Minor</dt><dd data-xmldisp-tag="minoralarms">-</dd> 
    </dl> 
</div> 

这里有一个改进的jsfiddle你可以试试:http://fiddle.jshell.net/K4UnJ/3/

不知道这是否在所有适合你的工作,但因为我有非常相似的代码躺在身边,我想我会分享。