var WinFileSee = new Ext.Window({
title : '文件查看',
width : 450,
height : 350,
layout : 'fit',
items : [{
xtype : 'textarea',
id:'File_Body',
name : 'File_Body',
allowBlank : true
}],
buttonAlign : 'center',
buttons : [{
text:'关闭',
scope : this,
handler : function(){
WinFileSee.close();
}
},{
text:'读取文件',
scope : this,
handler : function(){
//请求后台数据,得到文件内容
Ext.Ajax.request({
url: app + '/File/SeeDownLoadFile',
params : {
FilePath : Row[0].data.FileLocal
},
scope : this,
success : function(_res,_opts){
if(_res.responseText)
{
data = Ext.decode(_res.responseText);
Ext.getCmp('File_Body').setValue(data.file);
}
},
failure : function(){
Ext.Msg.alert("系统提示","通讯失败!");
}
});
}
}]
});
WinFileSee.show();代码如上,想要的功能是,后台程序读取txt文本文件,得到内容后,将内容显示到textarea文本框中
后台采用PHp代码
代码如下: public function SeeDownLoadFile()
{
$file_Path = $_POST['FilePath'];
if(file_exists($file_Path))
{
$file_handle = fopen($file_Path, "r");
while (!feof($file_handle))
{
$line = $line.fgets($file_handle);
}
fclose($file_handle);
echo '{success:true,file:"'.$line.'"}';
}
else
{
echo '{success:true,file:"文件不存在..."}';
}
}结果是,JSon字符串不正确,因为有换行符,但是前台显示又必须有换行,请问各位,这种问题还有别的方式么》?或者怎么解决?
value = value.Replace("\r\n", "\\r\\n");
我把权限存到数据库,然后查询该人的权限,把不具有的菜单项隐藏掉,我就想着写个递归函数,我的递归貌似有问题,各位帮忙看看 function RemoveChildNode(_parentNode) {
var _nodArry = _parentNode.childNodes; //获取该节点下的所有子节点
for(i = 0; i < _nodArry.length; i++){
if(!_nodArry[i].isLeaf()) { //判断该节点是父节点还是子节点
_nodArry[i].reload(); //做一次从新加载,因为用的是异步树,不加载,获取不到子节点
if (_nodArry[i].isLoaded()) {
var childarry = _nodArry[i].childNodes;
RemoveChildNode(_nodArry[i]);
}
}else{
if(modulearray.indexOf(_nodArry[i].id) == -1){ //如果该节点的iD在后台权限ID数组中,不隐藏,否则,隐藏该节点。
_nodArry[i].getUI().hide();
}
if(!_parentNode.isExpandable()){ //这里是判断父节点下,还有没有子节点,因为我隐藏了,父节点下没有子节点了,我想连带父节点也隐藏了,可惜这里的判断无效,隐藏了,但是还是有子节点,这里也是一个问题点。本来父节点下的子节点全部隐藏了,看不到了,就一个父节点了,怎么判断下,把父节点也隐藏了??
_parentNode.getUI().hide();
}
}
}
}
//调用
listeners : {
"expand" : function(_node){
var _nodArry = _node.childNodes; //获取其所有子节点
RemoveChildNode(_node);
}
}
考勤管理
请假记录
外派记录
个人办公
工作日志
重要任务像上面这种树,使用哪个函数,遍历的时候,就只能遍历考勤管理,个人办公没法遍历了噢。
我的调用是在跟 结点上调用的,在其展开事件中写的调用。
listeners : {
"expand" : function(_node){
var _nodArry = _node.childNodes; //获取其所有子节点
RemoveChildNode(_node);
//_nodArry[0].remove(); //删除子节点
}
}
* 遍历树节点,检查权限。将用户不存在的权限隐藏掉
* @param {菜单项树的根节点} _parentNode
*/
function RemoveChildNode(_parentNode) {
//获取其所有子节点
var _nodArry = _parentNode.childNodes;
for (var i = 0; i < _nodArry.length; i++) { //上面不行的原因是这里,var i = 0,而上面是 i=0就这个小错误,导致结果不正确。
if (!_nodArry[i].leaf) {
_nodArry[i].reload();
if(_nodArry[i].isLoaded()){
RemoveChildNode(_nodArry[i]);
}
} else {
if (modulearray.indexOf(_nodArry[i].id) == -1) {
_nodArry[i].getUI().hide();
}
var parentnodes = _nodArry[i].parentNode;
if (!_parentNode.isExpandable()) {
_parentNode.getUI().hide();
}
}
}
}
权限这里好了,,可是当父节点下没有子节点的时候,要将父节点也隐藏了,但是怎么判断父节点下的子节点都隐藏了呀???