动态网格列

时间:2010-03-11 21:37:13

标签: php

我需要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显示正确,但没有数据?知道为什么吗?

1 个答案:

答案 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];?>"/>