【问题标题】:Problems passing data to view using PRADO使用 PRADO 将数据传递给视图时出现问题
【发布时间】:2013-04-07 08:12:24
【问题描述】:

我得到了一个网站来维护。该网站正在使用 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 的定义在哪里。 任何帮助将不胜感激。

P.S:我以前从未与 PRADO 合作过。

【问题讨论】:

  • 您是否有一个名为 XXX.page XXX 的文件与包含上述代码的文件同名?您还需要在此文件中添加组件标签。

标签: php model-view-controller prado


【解决方案1】:

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

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

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

TDataBoundControl 的子类用于需要循环结果的组件,(有点像forforeach)。 如果您只是需要将信号结果传递给视图,您可以使用 TPanel/TActivePanel、TLiteral 等组件,或者直接使用 expression tag

示例:

表达式标签:

PHP:

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

模板:

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

或其他解决方案:

模板:

<com:TLiteral ID="MyLiteral" />

PHP:

<?php
$this->MyLiteral->getControls()->add('<h1>Hello world !</h1>');

【讨论】:

  • 感谢您的努力。我不知道这是否能解决问题,因为我已经有一年没有在这个网站上工作了,而且我不知道当时我是如何解决这个问题的。我仍然会接受答案:)
猜你喜欢
  • 2017-10-21
  • 1970-01-01
  • 2011-06-05
  • 1970-01-01
  • 2015-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多