0

我得到了一个网站来维护。该网站正在使用 PRADO 框架,我不得不做一些小改动。HTML 和 CSS 更改没有问题,但现在我必须将一些数据从页面传递到视图。我试过使用:

$this->HomeCalendar2->DataSource = $result['data'];
$this->HomeCalendar2->dataBind();

但它说Component property 'Home.HomeCalendar2' is not defined.

在我的代码上方有以下代码:

$this->HomeCalendar->DataSource = $result;
$this->HomeCalendar->dataBind();

它工作得很好,我看不出 HomeCalendar 的定义在哪里。任何帮助将不胜感激。

PS:我以前从未与 PRADO 合作过。

4

1 回答 1

2

这个问题现在很老了,希望你已经解决了。

使用 DataSource 意味着在您的模板(.page 或 .tpl)中必须有一个TDataBoundControl组件,如 folowwing(例如使用 TRepeater)

<com:TRepeater ID="HomeCalendar">
<!--- [ properties like ItemTemplate here and it contents ] --->
</com:TRepeater>

TDataBoundControl 的子类用于需要循环结果的组件(某种forforeach某种方式)。如果您只是需要将信号结果传递给视图,您可以使用 TPanel/TActivePanel、TLiteral 等组件,或者简单地使用表达式标签

例子 :

表达式标签:

php:

<?php
$this->myvalue = 'Hello World!';

模板 :

<h1><%= $this->myvalue %></h1>

或另一种解决方案:

模板 :

<com:TLiteral ID="MyLiteral" />

PHP:

<?php
$this->MyLiteral->getControls()->add('<h1>Hello world !</h1>');
于 2014-02-21T15:27:52.050 回答