Jquery 无法在KendoUI上的Treeview上选择

Jquery 无法在KendoUI上的Treeview上选择,jquery,kendo-ui,coldfusion,kendo-treeview,Jquery,Kendo Ui,Coldfusion,Kendo Treeview,我需要一点关于KendoUI Treeview的帮助。我正在研究KendoUI Treeview代码。下面是作为父级的FactorTypes和作为子级的FactorTypes。因此,如果我选择了FactorType,则该特定FactorType下的所有因子都将被选中。通过选中All复选框,我将All作为FactoryTypes的父节点,所有FactoryTypes中的所有因子都将被选中 然而,我有一种情况,我可以使用所有复选框,如果我在选择后使用第二个或后续的FactorType,那么第一个Fa

我需要一点关于KendoUI Treeview的帮助。我正在研究KendoUI Treeview代码。下面是作为父级的FactorTypes和作为子级的FactorTypes。因此,如果我选择了FactorType,则该特定FactorType下的所有因子都将被选中。通过选中All复选框,我将All作为FactoryTypes的父节点,所有FactoryTypes中的所有因子都将被选中

然而,我有一种情况,我可以使用所有复选框,如果我在选择后使用第二个或后续的FactorType,那么第一个FactorType可以正常工作,它们可以按预期工作。下面是代码和屏幕截图

HTML代码:

因子类型: 全部的 FactorTypes.factor\u类型\u名称 从因子类型代码='因子类型.因子类型代码'的因子中选择* ListOfFactors.factor\u名称 这似乎是错误的:

<cfinvoke component="e.qhse.sea.api.Factor" 
method="FactorList" factor_type_id="#factor_type_id#" 
returnvariable="fResult">
</cfinvoke>
<cfloop query="fResult">
<cfset fResult["factor_id"] = factor_id>
<cfset fResult["factor_name"] = factor_name>
<cfset arrayAppend(ftResult["factors"],fResult)>
</cfloop>
如果看不到数据源名称或sql,就不可能说,但是,您可能正在执行以下操作:

<cfinvoke returnvariable = "ftResult">
<cfloop query = "ftResult">
<cfinvoke factor_type_id="#factor_type_id#" returnvariable="fResult">
<!--- fResult is also a query --->
<cfquery datasource = "fred" name = "q1">
select id 
from table1
</cfquery>

<cfloop query = "q1">

<cfquery datasource = "fred" name = "q2">
select id, name
from table2
where id = #id#
</cfquery>
more code
</cfloop>
如果是这样的话,充其量就是效率低下。它还可能导致其他问题。更好的方法是通过单个查询获取所有数据:

<cfquery datasource = "fred" name = "betterQuery">
select t1.id id, name
from table1 t1 join table2 t2 on t1.id = t2.id

</cfquery>
这似乎是错误的:

<cfinvoke component="e.qhse.sea.api.Factor" 
method="FactorList" factor_type_id="#factor_type_id#" 
returnvariable="fResult">
</cfinvoke>
<cfloop query="fResult">
<cfset fResult["factor_id"] = factor_id>
<cfset fResult["factor_name"] = factor_name>
<cfset arrayAppend(ftResult["factors"],fResult)>
</cfloop>
如果看不到数据源名称或sql,就不可能说,但是,您可能正在执行以下操作:

<cfinvoke returnvariable = "ftResult">
<cfloop query = "ftResult">
<cfinvoke factor_type_id="#factor_type_id#" returnvariable="fResult">
<!--- fResult is also a query --->
<cfquery datasource = "fred" name = "q1">
select id 
from table1
</cfquery>

<cfloop query = "q1">

<cfquery datasource = "fred" name = "q2">
select id, name
from table2
where id = #id#
</cfquery>
more code
</cfloop>
如果是这样的话,充其量就是效率低下。它还可能导致其他问题。更好的方法是通过单个查询获取所有数据:

<cfquery datasource = "fred" name = "betterQuery">
select t1.id id, name
from table1 t1 join table2 t2 on t1.id = t2.id

</cfquery>

是的,我试过这种方法,这和这里的文章是一样的

我更改了HTML代码,它是简单的div标记元素

<div id="treeview-section" class="header k-content">
                    <div id="treeview">
                    </div>
                </div>
我像这样更改了数据的初始化

$("#treeview").kendoTreeView({
        checkboxes: {
            checkChildren: true
        },
        dataSource: [{
            id: "select_all", text: "Select All", expanded: false, items: [
            <cfoutput query="FactorTypes">
                {id: "factor_type_id#factor_type_id#", text: "#FactorTypes.factor_type_name#", expanded: false, items: [

                <cfquery dbtype="query" name="ListOfFactors">
                    select * from Factors
                    where factor_type_code = '#FactorTypes.factor_type_code#'
                </cfquery>

                <cfloop query="ListOfFactors">
                    {id: "factor_id#ListOfFactors.factor_id#", text: "#ListOfFactors.factor_name#" },
                </cfloop>
                ]},
            </cfoutput>
            ]
        }]
    });

这很好用

是的,我试过这种方法,与本文相同

我更改了HTML代码,它是简单的div标记元素

<div id="treeview-section" class="header k-content">
                    <div id="treeview">
                    </div>
                </div>
我像这样更改了数据的初始化

$("#treeview").kendoTreeView({
        checkboxes: {
            checkChildren: true
        },
        dataSource: [{
            id: "select_all", text: "Select All", expanded: false, items: [
            <cfoutput query="FactorTypes">
                {id: "factor_type_id#factor_type_id#", text: "#FactorTypes.factor_type_name#", expanded: false, items: [

                <cfquery dbtype="query" name="ListOfFactors">
                    select * from Factors
                    where factor_type_code = '#FactorTypes.factor_type_code#'
                </cfquery>

                <cfloop query="ListOfFactors">
                    {id: "factor_id#ListOfFactors.factor_id#", text: "#ListOfFactors.factor_name#" },
                </cfloop>
                ]},
            </cfoutput>
            ]
        }]
    });

这很好用

你试过这个吗?是的,我试过这个。在这里,他们从datasouce获取数据。我尝试了同样的代码,效果非常好。但在我的情况下,我可以实现这一点,但由于我从数据库中获取数据,我需要通过rest服务获取数据,并且能够建立FactorTypes和Factors之间的父子关系。你尝试过这个吗?是的,我尝试过这个。在这里,他们从datasouce获取数据。我尝试了同样的代码,效果非常好。但在我的例子中,我可以实现这一点,但由于我从数据库中获取数据,我需要通过rest服务获取数据,并且能够将FactorTypes和Factors之间的关系建立为父子关系。