How can I convert frm php to c# or json? [closed]

心已入冬 提交于 2020-01-06 04:57:12

问题


I am using the browser-layout example for my application

I'm trying to add a two trees to it.

I'm trying to define the twotrees in a separate file, my main file is the layout-browser.js and i need to add this (and others) in the tabs I have in it.

The problem is that I'm using .net and the example is using php

How can I make this work in .net?

Here is my code:

Ext.require(['*']);

var store = Ext.create('Ext.data.TreeStore', {
    proxy: {
        type: 'ajax',
        url: 'get-nodes.php'
    },
    root: {
        text: 'Ext JS',
        id: 'src',
        expanded: true
    },
    folderSort: true,
    sorters: [{
        property: 'text',
        direction: 'ASC'
    }]
});

var tree = Ext.create('Ext.tree.Panel', {
    id: 'tree',
    store: store,
    width: 250,
    height: 300,
    columnWidth: 0.5,
    viewConfig: {
        plugins: {
            ptype: 'treeviewdragdrop',
            appendOnly: true
        }
    }
   // ,renderTo: document.body
});

var store2 = Ext.create('Ext.data.TreeStore', {
    proxy: {
        type: 'ajax',
        url: 'get-nodes.php'
    },
    root: {
        text: 'Custom Ext JS',
        id: 'src',
        expanded: true,
        children: []
    },
    folderSort: true,
    sorters: [{
        property: 'text',
        direction: 'ASC'
    }]
});

var tree2 = Ext.create('Ext.tree.Panel', {
    id: 'tree2',
    width: 250,
    height: 300,
    columnWidth: 0.5,
    store: store2,
    viewConfig: {
        plugins: {
            ptype: 'treeviewdragdrop',
            appendOnly: true
        }
    }
   // ,renderTo: document.body
});


Ext.define("Ext.app.myTwoTrees",{
extend:"Ext.panel.Panel",

width : 600,
height: 350,
layout: 'column',
items: [
         tree , tree2
       ]

});

I call it in my tab like this:

 Ext.create('Ext.app.myTwotrees')

here is the get-nodes.php

<?php
// from php manual page
function formatBytes($val, $digits = 3, $mode = 'SI', $bB = 'B'){ //$mode == 'SI'|'IEC', $bB == 'b'|'B'
   $si = array('', 'K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y');
   $iec = array('', 'Ki', 'Mi', 'Gi', 'Ti', 'Pi', 'Ei', 'Zi', 'Yi');
   switch(strtoupper($mode)) {
       case 'SI' : $factor = 1000; $symbols = $si; break;
       case 'IEC' : $factor = 1024; $symbols = $iec; break;
       default : $factor = 1000; $symbols = $si; break;
   }
   switch($bB) {
      case 'b' : $val *= 8; break;
      default : $bB = 'B'; break;
   }
  for($i=0;$i<count($symbols)-1 && $val>=$factor;$i++)
       $val /= $factor;
  $p = strpos($val, '.');
   if($p !== false && $p > $digits) $val = round($val);
   elseif($p !== false) $val = round($val, $digits-$p);
   return round($val, $digits) . ' ' . $symbols[$i] . $bB;
}

// grab the custom params
$path = isset($_REQUEST['path'])&&$_REQUEST['path'] == 'extjs' ? '../../../' : '../../';

$node = isset($_REQUEST['node']) ? $_REQUEST['node'] : '';
   $isXml = isset($_REQUEST['isXml']);

if(strpos($node, '..') !== false){
   die('Nice try buddy.');
}

$nodes = array();
$directory = $path.$node;
   if (is_dir($directory)){
       $d = dir($directory);
        while($f = $d->read()){
            if($f == '.' || $f == '..' || substr($f, 0, 1) == '.') continue;

    $filename = $directory . '/' . $f;
    date_default_timezone_set('America/Los_Angeles');
    $lastmod = date('M j, Y, g:i a', filemtime($filename));

    if(is_dir($directory.'/'.$f)){
        $qtip = 'Type: Folder<br />Last Modified: '.$lastmod;
        $nodes[] = array(
            'text' => $f,
            'id'   => $node.'/'.$f,
            'cls'  => 'folder'
        );
    } else {
        $size = formatBytes(filesize($filename), 2);
        $qtip = 'Type: JavaScript File<br />Last Modified: '.$lastmod.'<br />Size: '.$size;
        $nodes[] = array(
            'text' => $f,
            'id'   => $node.'/'.$f,
            'leaf' => true,
            'cls'  => 'file'
        );
    }
}
$d->close();
}

if ($isXml) {
    $xmlDoc = new DOMDocument();
    $root = $xmlDoc->appendChild($xmlDoc->createElement("nodes"));
    foreach ($nodes as $node) {
    $xmlNode = $root->appendChild($xmlDoc->createElement("node"));
    $xmlNode->appendChild($xmlDoc->createElement("text", $node['text']));
    $xmlNode->appendChild($xmlDoc->createElement("id", $node['id']));
    $xmlNode->appendChild($xmlDoc->createElement("cls", $node['cls']));
    $xmlNode->appendChild($xmlDoc->createElement("leaf", isset($node['leaf'])));
}
header("Content-Type: text/xml");
$xmlDoc->formatOutput = true;
echo $xmlDoc->saveXml();
} else {
    echo json_encode($nodes);
}

回答1:


I would recommend you break the problem into two pieces:

1) change url: 'get-nodes.php' to url: 'my-dotnet-url and make the .NET page return static JSON or XML (hardcode the values to the tree)

That will confirm all your javascript, resources, etc. is working properly and that you are only asking a .NET question about how to output certain data.

2) Then find a .NET example that will let you create JSON or XML from wherever you are getting data (I'm guessing probably a database). You just need the output to look like your static data that worked correctly. If you don't know much PHP or .NET learning .NET to get your output correct would be easier than trying to port over that example. If you get stuck, I'd repost a different question and ask how to output the data that results from that static file dynamically and don't have the extjs complication involved!

Hope this helps.




回答2:


Try Dextop. It's an application framework for connection between ASP.NET and Ext JS.



来源:https://stackoverflow.com/questions/6346318/how-can-i-convert-frm-php-to-c-sharp-or-json

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!