jggrid(adjacency)中的json与treegrid,jqgrid不显示json数据?
问题描述:
我在寻找例如如何转换json中的邻接模型,xml作品,但在文档json docs没有例子jqgrid中的例子,所以有人可以指导我转换这个XML在JSON ??,我仍然搞清楚如何做到这一点,有利于真正apreciatedjggrid(adjacency)中的json与treegrid,jqgrid不显示json数据?
这是我的代码:
if (stristr($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml")) {
header("Content-type: application/xhtml+xml;charset=utf-8"); } else {
header("Content-type: text/xml;charset=utf-8");
}
if(isset($_REQUEST['nodeid'])==FALSE) {
$node =0;
}
else{
$node = (integer)$_REQUEST["nodeid"];
}
$clsJqGrid = new redCuidadana();
$et = ">";
echo "<?xml version='1.0' encoding='utf-8'?$et\n";
echo "<rows>";
echo "<page>1</page>";
echo "<total>1</total>";
echo "<records>1</records>";
if($node >0) { //check to see which node to load
$wh = 'parent_id='.$node; // parents
//$n_lvl = $n_lvl+1; // we should ouput next level
} else {
//$wh = 'ISNULL(parent_id)';
$wh ='parent_id=0';// roots
}
$mostrarRegistros= $clsJqGrid->mostrarRegistros($wh);
foreach ($mostrarRegistros as $row){
echo "<row>";
echo "<cell>".$row["id_ciudadano"]."</cell>";
echo "<cell>".$row["distrito"]."</cell>";
echo "<cell>".$row["seccion"]."</cell>";
echo "<cell>".$row["rol"]."</cell>";
echo "<cell>".$row["clave_electoral"]."</cell>";
echo "<cell>".$row["nombre"]."</cell>";
echo "<cell>".$row["apaterno"]."</cell>";
echo "<cell>".$row["amaterno"]."</cell>";
echo "<cell>".$row["level"]."</cell>";
echo "<cell><![CDATA[".$row["parent_id"]."]]></cell>";
if($row["level"] == "2"){echo "<cell>"."true"."</cell>";}
else{echo "<cell>".$row["isLeaf"]."</cell>";}
echo "<cell>".$row["expanded"]."</cell>";
echo "</row>";
}
echo "</rows>";
?>
这是我迄今为止
<?php
require_once '../../sesion/model/clsSesion.php';
require_once '../../red_ciudadana/model/modelRedCuidadana.php';
if(isset($_REQUEST['nodeid'])==FALSE) {
$node =0;
}
else{
$node = (integer)$_REQUEST["nodeid"];
}
if($node >0) {
$wh = 'parent_id='.$node;
}
else{
$wh ='parent_id=0';
}
header("Content-type: text/html;charset=utf-8");
$response->total = 1;
$response->page = 1;
$response->records = $count=1;
$i=0;
$clsJqGrid = new redCuidadana();
$mostrarRegistros= $clsJqGrid->mostrarRegistros($wh);
foreach ($mostrarRegistros as $row){
if($row["level"] == "2"){$cosa= "true";}
else{$cosa=$row["isLeaf"];}
$response->rows[$i]['id']=$row["id_ciudadano"];
$row["expanded"];
$response->rows[$i]['cell']= array($row["distrito"],
$row["seccion"],
$row["rol"],
$row["clave_electoral"],
$row["nombre"],
$row["apaterno"],
$row["amaterno"],
$row["level"],
$row["parent_id"],
$cosa,
$row["expanded"]
);
$i++;
}
echo json_encode($response);
?>
但jqGrid的不显示数据,这是JSON我得到
{"total":1,"page":1,"records":1,"rows":[{"id":"1","cell":["01","1001","Coordinador Distrital","ACBJ1975000001","JOSE RAUL","ACEVES","BARRIGA","0","0","false","false"]}]}
答
我不知道PHP的,但这是我如何做到这一点在C#(ASP.NET MVC3):这是一个自动加载树,不加载树一次。
操作方法:
public JsonResult GetSPTreeJSON(string nodeid, string n_level, string currentUser)
{
List<TreeNode> list = _clientService.GetTreeNodeList(nodeid, n_level);
var jsonData = new
{
page = 1,
total = 1,
records = 1,
rows = (
from TreeNode u in list
select new
{
cell = new object[] { u.Id.ToString(), u.name, u.level, u.ParentId, u.isLeaf, false }
}).ToList()
};
return Json(jsonData, JsonRequestBehavior.AllowGet);
}
方法,其中树节点列表建成:
public List<TreeNode> GetTreeNodeList(string nodeid, string n_level)
{
List<Tree> root = null;
Guid? currentNode;
if (nodeid == null)
currentNode = null;
else
currentNode = new Guid(nodeid);
if (nodeid == null)
root = ssdsContext.Trees.Where(x => x.ParentId == null).ToList();
else
root = ssdsContext.Trees.Where(x => x.ParentId == currentNode).ToList();
List<TreeNode> list = new List<TreeNode>();
int newLevel = n_level == null ? 0 : Convert.ToInt32(n_level) + 1;
foreach (Tree t in root)
{
TreeNode n = new TreeNode
{
expanded = false,
Id = t.UserId,
isLeaf = t.IsUser,
name = t.Name,
ParentId = t.ParentId,
level = newLevel
};
list.Add(n);
}
return list;
}
树节点类:
public class TreeNode
{
public Guid Id;
public string name;
public int level;
public Guid? ParentId;
public bool isLeaf;
public bool expanded;
}
样品JSON(注意:我们的ID是GUIDS) :
{
"page":1,
"total":1,
"records":1,
"rows":[
{
"cell":[
"29846baa-ede0-4582-b9ed-39bcc486f2c2", //Id
"Level1 Group", //Name
1, //Level
"5a1a9742-3e0f-11d3-941f-006008032006", //Parent Id
false, //Is Leaf
false //Expanded
]
},
{
"cell":[
"fd62f214-e25c-4d68-aa38-6805adfb4305",
"Level1 Group",
1,
"5a1a9742-3e0f-11d3-941f-006008032006",
false,
false
]
},
{
"cell":[
"39cc2783-811f-4885-9af6-d35b1a1385a2",
"Level 1 Node",
1,
"5a1a9742-3e0f-11d3-941f-006008032006",
true,
false
]
},
{
"cell":[
"5a1a9743-3e0f-11d3-941f-006008032006",
"Level 1 Node",
1,
"5a1a9742-3e0f-11d3-941f-006008032006",
true,
false
]
},
{
"cell":[
"466d78df-6f39-43ff-abfd-58e7bf91f8c8",
"Level 1 Node",
1,
"5a1a9742-3e0f-11d3-941f-006008032006",
true,
false
]
},
{
"cell":[
"c80ca2d1-8210-4c11-8c6d-005c97fce9cb",
"Level 1 Node",
1,
"5a1a9742-3e0f-11d3-941f-006008032006",
true,
false
]
},
{
"cell":[
"d1f870ed-bca6-4cc8-8b96-b19fa251c2f8",
"Level 1 Node",
1,
"5a1a9742-3e0f-11d3-941f-006008032006",
true,
false
]
},
{
"cell":[
"3061ce07-bff6-4d9a-a84a-a8a7d47ebd7a",
"Level 1 Node",
1,
"5a1a9742-3e0f-11d3-941f-006008032006",
true,
false
]
},
{
"cell":[
"d9dadce8-a9ce-4343-a8a0-b80844aa36ad",
"Level 1 Node",
1,
"5a1a9742-3e0f-11d3-941f-006008032006",
true,
false
]
},
{
"cell":[
"9042ded8-09ee-46f9-beac-8746ed1cdd17",
"Level 1 Node",
1,
"5a1a9742-3e0f-11d3-941f-006008032006",
true,
false
]
}
]
}
也许它会很容易转换。
谢谢你回答我试图让你的想法 – bentham 2012-08-14 16:35:45
让我知道如果你有任何问题 – woggles 2012-08-14 21:38:18