如何使用PHP包装器在kendoui中嵌套小部件


How do I nest widgets in kendoui using PHP wrapper?

我用treeview编写了一个类似手册的代码。

div id="treview-back">
<?php
$treeview = new 'Kendo'UI'TreeView('treeview');
// helper function that creates TreeViewItem with imageUrl
function ImageTreeViewItem($text) {
    $item = new 'Kendo'UI'TreeViewItem($text);
    return $item;
}
$msg = ImageTreeViewItem('Message');
$msg->addItem(
            ImageTreeViewItem('New Message'),
            ImageTreeViewItem('Replay')
        );    
$msg->expanded(true);
$inbox = ImageTreeViewItem('Home');
$inbox->expanded(TRUE);
$inbox->addItem($msg);
$dataSource = new 'Kendo'Data'HierarchicalDataSource();
// add root-level nodes as datasource data
$dataSource->data(array($inbox));
$treeview->dataSource($dataSource);
echo $treeview->render();
?></div>

我需要添加一个分配器小部件,我要怎么做?我没在手动档找到它。为什么,如果我添加这段代码

 <script type="text/javascript">$("#treeview").kendoTreeView({
    checkboxes: true
 });</script>

TreeView消失。

代码的结构与您为tree所做的几乎相同。

<div id="outer-splitter">
    <?php
    $treeview = new 'Kendo'UI'TreeView('treeview');
    // helper function that creates TreeViewItem with imageUrl
    function ImageTreeViewItem($text) {
        $item = new 'Kendo'UI'TreeViewItem($text);
        return $item;
    }
    $msg = ImageTreeViewItem('Message');
    $msg->addItem(ImageTreeViewItem('New Message'), ImageTreeViewItem('Replay'));
    $msg->expanded(true);
    $inbox = ImageTreeViewItem('Home');
    $inbox->expanded(TRUE);
    $inbox->addItem($msg);
    $dataSource = new 'Kendo'Data'HierarchicalDataSource();
    // add root-level nodes as datasource data
    $dataSource->data(array($inbox));
    $treeview->dataSource($dataSource);
    // Create Left Pane
    $leftPane = new 'Kendo'UI'SplitterPane();
    $leftPane->attr("id", "left-pane")->collapsible(true)->size(220)->content($treeview->render());
    // Create Right Pane
    $rightPane = new 'Kendo'UI'SplitterPane();
    $rightPane->attr("id", "right-pane")->collapsible(true)->size(220)->startContent();
    ?>
    <div>
        Right pane
    </div>

    <?php
    $rightPane->endContent();
    // create outer splitter
    $splitter = new 'Kendo'UI'Splitter('splitter');
    $splitter->orientation("horizontal");
    $splitter->addPane($leftPane);
    $splitter->addPane($rightPane);
    echo $splitter->render();
    ?>
</div>

配置Splitter, setting its内容时需要使用'Kendo'UI'Splitter。这里我用的是:

  • orientation用于设置窗格的方向。horizontal表示它们水平平铺。
  • addPane允许您添加'Kendo'Ui'SplitterPane
  • 'Kendo'Ui'SplitterPane中,我使用content在内部添加另一个小部件定义,startContentendContent用于分隔HTML块的开始和结束。

你可以在这里找到很好的信息。

您的代码使拆分器消失,因为这是使用Kendo UI小部件的不同方式(纯javascript,不使用PHP包装器),并且在该代码段中,您没有定义 TreeView的内容。