我需要DataGrid中动态列的帮助。我在PHP后端使用GenericFrame前端。
如果我使用这样的静态列:
<? ... ?>
<DataGrid id="DataGrid1" width="100%">
<columns>
<DataGridColumn headerText="name" dataField="@username" width="150"/>
<DataGridColumn headerText="Nahcname" dataField="@secondname" width="150"/>
<DataGridColumn headerText="alter" dataField="@age" width="40"/>
</columns>
</DataGrid>
<? ... ?>
工作正常。
但我尝试用PHP创建动态列。
<generic>
<template target="gridbox">
<VBox id="dynamic" height="100%">
<!-- DataGrid -->
<DataGrid id="DataGrid1" width="100%" >
<columns>
<?php
$columns = array( //Spalte => (Breite, Datenfeld)
"name" => array(150,"@username"),
"Nahcname" => array(150,"@secondname"),
"alter"=> array(40,"@age")
);
foreach ($columns as $key => $value) { ?>
<DataGridColumn headerText="<? echo $key; ?>" dataField="<? echo $value[0]; ?>" width="<? echo $value[0];?>"/>
<?php } ?>
</columns>
</DataGrid>
<Binding source="templatedata.data1.item" destination="DataGrid1.dataProvider" />
</VBox>
</template>
<templatedata>
<data1>
<!-- Daten -->
<item username="User1" secondname="Nachname1" age="22"/>
<item username="User2" secondname="Nachname2" age="25"/>
<item username="User3" secondname="Nachname3" age="27"/>
<item username="User4" secondname="Nachname4" age="32"/>
</data1>
</templatedata>
DataGrid显示正确,但没有数据?知道为什么吗?
答案 0 :(得分:0)
我可以看到的一个问题是你使用$ value [0]两次,“dataField”和“width”:
<DataGridColumn headerText="<? echo $key; ?>" dataField="<? echo $value[0]; ?>" width="<? echo $value[0];?>"/>
不应该是这样的:
<DataGridColumn headerText="<? echo $key; ?>" dataField="<? echo $value[1]; ?>" width="<? echo $value[0];?>"/>