sqlserver-EXTJS动态加载树,后台JSP,为什么报错NO DATA FOUND呢?代码在下,多谢了!

问题描述

EXTJS动态加载树,后台JSP,为什么报错NO DATA FOUND呢?代码在下,多谢了!

代码:LoadTree.html

test3

<script type="text/javascript">
           var tree = new Ext.tree.TreePanel({
            loader : new Ext.tree.TreeLoader({
                dataUrl : 'tree.jsp?Did=00001'
            }),
            border : false,
            root : new Ext.tree.AsyncTreeNode({
                text : '集团',
                id : '00001'
            })
        });

        tree.on("beforeload", function(node) {
            tree.loader.dataUrl = 'tree.jsp?Did=' + node.id;
        });

        new Ext.Window({ //将树放在窗口中
            height : 200,
            width : 200,
            layout : 'fit',
            border : false,
            title : 'First Tree',
            items : tree
        }).show();
    });
</script>

代码:tree.jsp
<%@ page language="java" pageEncoding="GBK"%>
/jsp:useBean
<%
String PID = "";
if (request.getParameter("Did") != null) {
PID = request.getParameter("Did").toString();
JSONTree.setPID(PID);
} else {
JSONTree.setPID("00001");
}
%>
<%=JSONTree.getJSONString()%>

代码:JSONTree.java
package tree;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class JSONTree {
private String PID;

public String getJSONString() {
    Connection conn = null;
    Statement st = null;
    ResultSet rs = null;
    StringBuffer dataJson = new StringBuffer();
    String SQLString = "SELECT * FROM treeTabel WHERE sjgsdm=" + this.PID
            + " and yxbz = 'Y' ORDER BY gsdm";
    String Sql="select sjgsdm from treeTabel where yxbz ='Y'group by sjgsdm order by sjgsdm";
    //String Sql="select sjgsdm from treeTabel ";
    try {
        /** * 连接数据库 */
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        conn = DriverManager.getConnection(
                "Jdbc:Odbc:tree",
                "sa", "123456");
        st = conn.createStatement();
        rs = st.executeQuery(Sql);

        System.out.println(this.PID);
        StringBuffer parentIDBuffer = new StringBuffer();
        parentIDBuffer.append("|");
        //System.out.println(parentIDBuffer);
        while (rs.next()) {
            /** * 因数据库里有一个节点的父节点为空,所以这里要把空节点从父节点集合里去除 */
            if (rs.getString("sjgsdm").equals(" ")) {
                continue;
            }
            parentIDBuffer.append(rs.getString("sjgsdm"));
            parentIDBuffer.append("|");
            System.out.println(parentIDBuffer);
        }
        /** * 打印测试语句,查看所获取到的所有父节点有哪些 */
        System.out.println(parentIDBuffer);
        String s = parentIDBuffer.toString();
        rs = st.executeQuery(SQLString);
        dataJson.append("[");
        while (rs.next()) { // 判断是否为父节点
            if (s.indexOf("|" + rs.getString("gsdm") + "|") >= 0) {
                dataJson.append("{id:'" + rs.getString("gsdm") + "',text:'"
                        + rs.getString("shortname") + "',leaf:false}");
            } else {
                dataJson.append("{id:'" + rs.getString("gsdm") + "',text:'"
                        + rs.getString("shortname") + "',leaf:true}");
            }
            /**
             * * 判断是否为最后一条记录,因Json里不同的{}之间要有一个','这个符号,但在最后一条记录时不需要加此符号,故有此判断
             */
            if (rs.isLast()) {
                System.out.println(rs.getString("shortname"));
                continue;
            }
            dataJson.append(",");
        }
        dataJson.append("]");
        /** * 打印测试语句,查看json对象的字符串是什么样,是否符合要求 */
        System.out.println(dataJson);
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
            rs.close();
            st.close();
            conn.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    // 返回JSON数据
    return dataJson.toString();
}

public String getPID() {
    return PID;
}

public void setPID(String pid) {
    PID = pid;
}

}

数据表:sjgsdm yxbz gsdm shortname 都是char型 其中sjgsdm为父节点 yxbz为子节点

多谢大家了!我是新学EXTJS的 需要大家的帮助!

时间: 2024-12-29 12:57:39

sqlserver-EXTJS动态加载树,后台JSP,为什么报错NO DATA FOUND呢?代码在下,多谢了!的相关文章

Extjs入门之动态加载树代码_extjs

Extjs动态加载树,首先在数据库里面设计存放树信息的表 复制代码 代码如下: USE [KimiExtjs] GO /****** 对象: Table [dbo].[Trees] 脚本日期: 04/08/2010 22:12:25 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[Trees]( [Tid] [varchar](40) COLLA

easyui的tree控件动态加载树类型

问题描述 easyui的tree控件动态加载树类型 这个真不会写了高人帮看看 实现树类型 附有数据库表 后台用c#的一般处理程序 前台怎么传节点 等等 写的时候帮我写点注释.感激不尽!!! 解决方案 .................. 解决方案二: http://blog.csdn.net/hzw2312/article/details/38919877 C#不太清楚,java的话能帮你

EasyUi combotree 实现动态加载树节点_javascript技巧

推荐阅读: 简介EasyUI datagrid editor combogrid搜索框的实现 EasyUi中的Combogrid 实现分页和动态搜索远程数据 easyui 1.2.4例子中并没有给出动态加载树节点的例子,只好自己研究. 从源码中可知可以看出combotree 是继承 combo 和 tree两个控件,所以在展开其下级子节点时,把combotree内置的tree的options选项的url重置成一个动态取选择值的url,代码如下: $('#cc').combotree({ url:

加载mvc项目时,报错,才接触mvc,不知道如何解决

问题描述 加载mvc项目时,报错,才接触mvc,不知道如何解决 加载mvc项目时,报错,才接触mvc,不知道如何解决,报错说是,没有什么model,url等字段 解决方案 什么mvc,spring mvc还是asp.net mvc,什么报错,贴出完整信息. 解决方案二: 是asp.net mvc, 解决方案三: 先ctrl+f5编译下,然后重新打开项目看看.

ztree动态加载数据库后台数据的例子

同步的加载数据是这样的: <script type="text/javascript">   function showIconForTree(treeId, treeNode) {             return !treeNode.isParent;         };         function zTreeOnClick(event, treeId, treeNode) {             alert(treeNode.cId);        

java动态加载jar中的类 报java.lang.NoClassDefFoundError错误

问题描述 现在两个工程1.工程A是调用工程2.工程B是被调用工程其中如果工程B中没有调用第三方的jar包时通过动态加载(URLClassLoader)的方式可以调用工程B中类的方法.现在工程B中引入了第三方的一个jar包如commons-lang-2.5.jar只用到一个StringUtils.isBlank()方法这时候A动态加载B中的类时就会报java.lang.NoClassDefFoundError求解打包的MANIFEST.MF文件如:Manifest-Version:1.0Class

求一java语言写的动态加载树!(从数据库读取节点的那种)

问题描述 最近想研究研究java动态树,extjs的倒是看过,不会改,因为对于extjs不熟.想自己封装一个,运用ssh框架,sqlserver2005数据库,jQuery等.哪位能指点一下,给点意见. 解决方案 解决方案二:思路:递归算法~~~还算简单解决方案三:所答非所问,继续求详细指点.解决方案四:这个对于展示的话就是用递归而在数据库设计的时候,则在每条记录存一个他上级的id,页面的话,再加点样式.可能就是页面比较麻烦.后台没有什么东西.用js+css写也行,就是很麻烦.解决方案五:简单的

解决Electron加载带jquery的项目报错问题

<!-- Insert this line above script imports --> <script>if (typeof module === 'object') {window.module = module; module = undefined;}</script> <!-- normal script imports etc --> <script src="scripts/jquery.min.js">&l

extjs中动态加载机制研究

昨天我们team对于extjs的动态加载机制做了些深入研究,这里先share下controller加载的结果. 以service registry portlet为例: 比如,在 liferay-portlet.xml中定义了: 所以我们的js的入口点是app.js,这其中创建了Ext.application并且声明了动态加载controller: Ext.application({ name: 'serviceRegistry', appFolder: '/serviceregistrypor