ColdFusion Layout,CFlayout,无法切换到父标签

时间:2014-07-30 00:12:40

标签: javascript coldfusion

我有一个使用CFlayout生成动态标签的应用程序。每个选项卡都由变量组合组成,但就本文而言,没有必要进入该选项。

这是有趣的。在过去,如果CFlayout找不到选项卡,我总是会收到错误。如果我更改选项卡名称(知道它不正确),Coldfusion会抛出错误,所以我知道选项卡存在通常,但无论出于何种原因,它都不会切换。

以下是我的代码:

的JavaScript

var uniqueTopTabID = someVar,
    uniqueLowerTabID = uniqueTopTabID + someVar,
    $topLayoutID = $('#cf_layoutarea' + uniqueTopTabID), //jquery objects to find if the tabs exist
    $lowerTabID = $('#cf_layoutarea' + uniqueLowerTabID); //same as above

以下是创建新标签或选择以前创建的标签的逻辑:

if ( $topLayoutID.length < 1 ) {
    ColdFusion.Layout.createTab('innerTabLayout', uniqueTopTabID, 'tabName' , cfLayoutLocation,    {inithide: false, selected: true, closable: true});          
}
//if the subsystem and WBS have already been selected, focus on that tab
else if ( $lowerTabID.length !== 0 ) {
    ColdFusion.Layout.selectTab( uniqueTopTabID, uniqueLowerTabID );
    //i have also tried to select the top tab, and then select the bottom tab but that doesn't work either  
}

就像我说的那样,没有抛出任何错误 - 我可以看到焦点来自当前的父选项卡,但无论出于何种原因,它都没有选择其他顶级选项卡。但是,如果尝试创建的选项卡位于当前父选项卡下,则会选择较低级别选项卡。

以下是我在 ColdFusion 方面生成标签的方法:

<cfif structKeyExists(URL,"bp")> <!--- make sure some var is available --->
    <cfset actualsScenarioView = "actualsScenarioView"&URL.ss>

    <cflayout name="#actualsScenarioView#" type="tab">
        <cfset scenarioName = URL.tabId>
        <cfset tabTitle = URL.subSystemName & ': ' & URL.wbsName>
        <cfset sourceFile = 'the URL passed in' >
        <cflayoutarea name="#scenarioName#" title="#tabTitle#" source="#sourceFile#" refreshOnActivate="false" closable="true">
        </cflayoutarea>
    </cflayout>

<cfelse>
<!--- if vars not avail, the page was request prior to submission, and will show noting--->
</cfif>

标签创建得很好,除了选择不同的父标签外,一切正常。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

几乎所有ColdFusion的显示方面都很糟糕。 ColdFusion是一个很好的中间件,但它不擅长编写JavaScript,无论是表单验证还是div。

你应该认真考虑重写而不用cflayout来看看http://static.raymondcamden.com/cfuitherightway/cflayout-tabs/index.html这是Raymond Camden&amp; Adam Cameron概述了如何更好地处理ColdFusion ISN擅长的事情。这是一个很好的资源。