📄 note2004-11-20.txt
字号:
天山雪莲 17:17:55
我找了一个javascript代码,可以显示树。但是现在我要修改或者增加,删除等操作,不知道怎么知道我选中的是那个节点
香山红叶 17:17:51
这个我没有经验。Web方式登录清华BBS(www.smth.org)后,左侧的树点击一个结点,服务器load分支。服务器是怎样知道你点击那个结点的?
天山雪莲 17:21:50
当然要把节点编号之类的信息传过去
天山雪莲 17:21:58
我先把东西发给你看看
香山红叶 17:20:57
什么东西?
等待香山红叶接收文件"Untitled-7.htm(5KB)"。请等待回应或取消 文件传输
天山雪莲 17:29:57
这是人家的树显示
文件“Untitled-7.htm”已经发送完毕.
等待香山红叶接收文件"tree_show.jsp(6KB)"。请等待回应或取消 文件传输
文件“tree_show.jsp”已经发送完毕.
天山雪莲 17:31:52
这是我根据人家的原文件的样子,自己改写成动态的了。你看看我的第归方法对了没有。
天山雪莲 17:32:34
我今天作不完,明天还得来,今天没有时间整理我的机器,明天还要来收拾 我的机器 ,明天我要把很多东西先给你保存着
天山雪莲 17:33:13
我看他的javascript里面 有selected之类的,但是我看不懂。
香山红叶 17:29:59
今天就发给我吧,免得明天麻烦
天山雪莲 17:33:36
现在没有心情整理,我还没有整理呢
天山雪莲 17:33:50
明天晚上9点的车,还有一天时间呢
天山雪莲 17:34:04
先把程序搞定再说
香山红叶 17:30:59
噢,明天早点动身得好
香山红叶 17:36:39
JSP第77行SHOW_TREE请求类型在TreeManagementBusiness.java中没有实现。
香山红叶 17:42:27
JSP第47行有问题,每次调用xmlTreeGet都会向treeXML追加"</DSTreeRoot>"
天山雪莲 17:47:22
那我怎么办呢,我写的时候就觉得有问题
天山雪莲 17:48:15
JSP第77行SHOW_TREE请求类型在TreeManagementBusiness.java中没有实现。
这个你不用管,我已经在java中改了
香山红叶 17:45:07
JSP第23行到46行的while()循环有问题。while()循环遍历了树,你在循环内部又调用递归函数再次遍历了树
天山雪莲 17:48:51
就是把list_all_tree_node改成show_tree了
香山红叶 17:46:53
我写的TreeIterator第一次next()操作得到的必定是根结点。
香山红叶 17:48:24
现在有个重要的问题就是,你深度优先遍历树获得的XML字符串是否符合显示的需要?
香山红叶 17:49:09
注意TreeIterator获得的结点,并不知道这个结点处于第几层。
天山雪莲 17:52:45
SP第23行到46行的while()循环有问题。
那我把while改为if就没有问题了,对吧
香山红叶 17:51:22
DefaultMutableTreeNode对象的getDepth()方法返回其所在深度。
天山雪莲 17:58:33
我糊涂了 ,你说怎么办呢
我为什么要getDepth()
天山雪莲 17:58:56
我休息休息,脑袋想糊涂了
天山雪莲 17:59:20
JSP第23行到46行的while()循环有问题。
那我把while改为if就没有问题了,对吧
香山红叶 17:57:08
你这样改不对。
天山雪莲 18:01:00
我要休息一会儿了,你说怎么改就怎么改
香山红叶 17:58:23
转不过来了么?
香山红叶 17:59:53
你看:JavaScript例子中用XML显示一个树,你注意观察它怎样表示结点的层次的。
香山红叶 18:23:06
我吃饭去了
天山雪莲 18:41:47
哦
天山雪莲 18:42:04
怎么办啊,我先这么写着吧
香山红叶 18:57:34
我改了一下
天山雪莲 19:02:00
怎么改的
香山红叶要发送给您文件“tree_show.jsp(6KB)”,您是要接收还是谢绝该文件
您同意了接收文件“tree_show.jsp”,正在建立连接,如果要中止接收文件,请按取消
香山红叶 18:59:42
自己看吧
天山雪莲 19:03:26
哦
文件已经保存到目录:“D:\长城宽带\树型结构管理\程序\web应用程序\jsp\v2”,在打开文件前,推荐您对文件进行病毒扫描。
天山雪莲 19:04:34
你觉得你改的没有问题了吧。还是用你的深度优先?深度优先出来的显示层次对不对阿。
香山红叶 19:03:07
可以用我的深度优先迭代器,但要注意从深层次到浅层次时要记得追加</DSTree>即可。
香山红叶 19:04:20
还有点小问题,给你的文件第29行最后去掉/
天山雪莲 19:17:45
就是你没有用第归了,是吧。应该没有问题了
天山雪莲 19:18:25
还有最后一个问题不能解决:用户选中一个节点之后,我怎么在jsp中知道他选中的是哪一个呢
香山红叶 19:15:15
嗯。先就这么着。
天山雪莲 19:19:11
只有javascript知道用户选中了哪一个
香山红叶 19:17:13
你应该再添加一些JavaScript代码,使得点击右键弹出菜单供“增删改挪”
天山雪莲 19:27:42
不是阿。我是有标签,如果点击“增加”标签,我就连结到create.jsp,重定向的时候,将选中的节点的id作为参数带到create.jsp。这样,我就知道是给那个节点增加子节点了
香山红叶 19:29:20
可以这么弄:在JavaScript事件onclick的处理中修改当前结点编号。然后“增加”等标签的点击事件处理中向JSP提交这个编号。
天山雪莲 19:36:58
"增加"等标签的点击事件??在javascript中写?
香山红叶 19:33:49
没必要那么弄。注意第123行的IO表示当前选中的结点,在138-152的onmousedown处理中修改IO为被点击的结点。
天山雪莲 19:38:17
我知道这个javascript可以知道那个被选中了,问题是这个被选中的节点信息我的jsp怎么访问到呢。
香山红叶 19:36:13
HTML中,一个URL的点击可以用JavaScript来处理,就向点击一个按钮那样,都是设置onclick。
天山雪莲 19:46:08
onClick="return getSelectedNodeId();"
但是还是不知道jsp怎么从getSelectedNodeId()中把参数得到,然后传给另一个叶面
天山雪莲 19:46:58
我现在有这么几个标签:
<tr>
<td height="35"><div align="center">添加子节点 修改节点 删除节点</div></td>
</tr>
天山雪莲 19:47:54
你就说说我的重定向怎么带参数node_id吧。比如标签“添加子节点”要重定向到create_node.jsp
香山红叶 19:44:37
"但是还是不知道jsp怎么"--应该说是JavaScript怎么...
香山红叶 19:46:23
我现在也不知道怎么才能让HTML的链接带一个动态的参数
天山雪莲 19:53:07
带动态参数就是create.jsp?node_id=<%=node_id%>阿,关键是这node_id怎么得到的问题啊
香山红叶 19:50:31
糊涂!你这样写是服务器端代码!
天山雪莲 19:55:13
知道,那只要我得到了node_id,这样写不就好了么
天山雪莲 19:55:45
哦,我错了,不能这样写
香山红叶 19:52:29
糊涂!
天山雪莲 19:56:18
知道了,node_id是在客户端得到的,服务器不知道。
香山红叶 19:57:22
增加按钮:
<a onclick=addOnclicked()>增加</a>
<JavaScript>
addOnclicked(){
window.open('create.jsp?node_id='+IO.getAttribute("treeId"),null,'height=270,width=530,status=no,toolbar=no,menubar=no,scrollbars=yes');
return false;
}
</JavaScript>
天山雪莲 20:04:01
最后要return false干什么
香山红叶 20:01:59
在JavaScript的方法addOnClicked中,打开一个新窗口,这个窗口的URL是由被选中结点决定的。注意:
(1)'height=270,...'这些是对新窗口的属性的限制,使得其没有工具栏等。其实这些可以用空字符串''代替.
(2)return false使得浏览器知道鼠标点击事件已处理完毕,否则浏览器将自动链接到<a>中的href属性(如果写出来了的话)。
香山红叶 20:03:23
(3)JavaScript默认对象window有许多方法,不仅仅是open,还有导航到某一链接等等。具体怎么写,我也不知道
天山雪莲 20:08:01
哦
香山红叶 20:05:52
这样一来,没什么大问题了吧
香山红叶 20:08:44
当然在window.open前加if(IO)条件判断,使得没有选中结点的时候不执行打开create.jsp这一动作。
天山雪莲 20:18:27
先回去了,同事等了很久了。明天继续,现在道路通了,明天应该很快
香山红叶 20:15:31
好吧,Bye
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -