我有以下代码,我希望将Rest Doc Service中的数据显示到Dojo Data Grid中。 Rest服务的输出很好,但Datagrid siplay显示列标题,没有别的。 这是我的代码:
<xp:panel>
<xe:restService id="restService1" pathInfo="docAccReq1"
rendered="true" state="true">
<xe:this.service>
<xe:documentJsonService
contentType="application/json" systemItems="63" var="docAcc"
documentUnid="80EFAE936EA978A480257CE4002DBC67">
<xe:this.items>
<xe:restDocumentItem itemName="Name"
name="Name">
</xe:restDocumentItem>
<xe:restDocumentItem
itemName="ACCESSREQUESTER" name="ACCESSREQUESTER">
</xe:restDocumentItem>
<xe:restDocumentItem
itemName="ACCESSREQUESTEDDATE" name="ACCESSREQUESTEDDATE">
</xe:restDocumentItem>
</xe:this.items>
</xe:documentJsonService>
</xe:this.service>
</xe:restService>
<xe:djxDataGrid id="djxDataGrid1"
storeComponentId="restService1" store="docStore">
<xe:this.dojoAttributes>
<xp:dojoAttribute name="autoWidth" value="true"></xp:dojoAttribute>
</xe:this.dojoAttributes>
<xe:djxDataGridColumn id="djxDataGridColumn1"
field="Name">
</xe:djxDataGridColumn>
<xe:djxDataGridColumn id="djxDataGridColumn2"
field="ACCESSREQUESTER">
</xe:djxDataGridColumn>
<xe:djxDataGridColumn id="djxDataGridColumn3"
field="ACCESSREQUESTEDDATE">
</xe:djxDataGridColumn>
</xe:djxDataGrid>
<xe:firebugLite id="firebugLite1"></xe:firebugLite>
</xp:panel>
<xp:panel>
<xc:ccDebugToolbar defaultCollapsed="true"
collapseTo="left"></xc:ccDebugToolbar>
</xp:panel>
答案 0 :(得分:3)
REST服务应提供数据数组。这是xe:djxDataGrid
所期望的,因为它是一个数据网格控件,它在表中的多行中显示数据。
常用方法是使用REST服务viewJsonService
。在视图中定义要在数据网格中查看的所有列。您使用参数“viewName”将视图连接到REST服务,并使用defaultColumns="true"
确保所有列都已交付。
您的REST服务定义如下所示:
<xe:restService
id="restService1"
pathInfo="docAccReq1">
<xe:this.service>
<xe:viewJsonService
viewName="AccessRequests"
defaultColumns="true" />
</xe:this.service>
</xe:restService>
REST服务将JSON数据作为数组提供:
[
{
"@entryid":"1-80EFAE936EA978A480257CE4002DBC67",
"@unid":"80EFAE936EA978A480257CE4002DBC67",
"@noteid":"12C7A",
"@position":"1",
"@read":true,
"@siblings":200,
"@form":"access",
"Name":"Arun",
"ACCESSREQUESTER":"Arun Agnihotri",
"ACCESSREQUESTEDDATE":"2014-05-26T08:19:31Z"
},
{
...
},
...
]
值“@position”和“@siblings”对Dojo Data Grid很重要。它们告诉我们有多少条目在视图中,哪个位置是当前数据条目。这允许在右侧垂直位置显示正确大小的垂直滚动条。
您使用的Rest服务documentJsonService
只提供一个JSON对象(不是数组),并且不提供这些附加信息。