Fancybox не работает с тегом Coldfusion CFGRID - PullRequest
0 голосов
/ 07 июня 2011

Я пробую CFGRID впервые.Хотя сама сетка работает просто отлично, я не могу получить ссылку Fancybox для работы внутри столбцов.Я добавил соответствующий код ниже.По сути, я делаю запрос, добавляю столбец запроса, который содержит ссылку, затем выводит результаты в cfgrid:

<cfquery name="qSessions" datasource="">
    SELECT id, title
    FROM EVENTS
    WHERE c_fkid = 1
</cfquery>
<cfset QueryAddColumn(qSessions,"edit_link","varchar",ArrayNew(1))>
<cfset i = 0>
<cfloop query="qSessions">
    <cfset i = i + 1>
    <cfset thisText = "<a href='./datagridFB.cfm?no_app=1' class='edit-session' id=" & i & ">Edit this session</a>">
    <cfset QuerySetCell(qSessions,"edit_link",thisText, currentRow)>
</cfloop>


<head>
    <!--- Javascript library/CSS links would go here --->
    <script type="text/javascript">
        $j = jQuery.noConflict();

        /* Reload the page */
        function refreshParent(){
            window.location.reload(true);
        }

        /* Initialization actions on doc ready */
        $j(document).ready(function() {
            $j(".edit-session").fancybox({
                'width'             : 600,
                'height'            : 350,
                'hideOnContentClick': false,
                'transitionIn'      : 'elastic',
                'transitionOut'     : 'fade',
                'type'              : 'iframe',
                'href'              : $j(this).href,
                'overlayOpacity'    : 0.6,
                'onCleanup'         : function(){refreshParent()}
            });
        });
    </script>       
</head>

<body>
    <!---Test Fancybox links outside the CFGRID--->
    <a href="./datagridFB.cfm?no_app=1" id="test-link" class="edit-session">Test FB</a>

    <!--- Output the results of the query --->
    <h2 class="header">Sessions in the Database</h2>
    <cfform id="testForm" name="testForm" method="post">
        <cfgrid name="testGrid" format="html" query="qSessions" width="500">
            <cfgridcolumn name="id" header="ID">
            <cfgridcolumn name="title"  header="Session Title" width="300"> 
            <cfgridcolumn name="edit_link" header="Edit">
        </cfgrid>
    </cfform>
</body>

Дело в том, что тестовая ссылка (вне CFGRID) работает просто отлично.Нажмите на нее, и откроется окно Fancybox iFrame.Но ссылки внутри CFGRID не дают о себе знать - они ведут вас прямо на страницу.Кто-нибудь может дать некоторые рекомендации по этому вопросу?Это связано с тем, что CFGRID построен на Ext.js или что-то?Спасибо!

1 Ответ

1 голос
/ 07 июня 2011

К сожалению, смешивание jQuery и cfform ajax никогда не было хорошей идеей. Может быть, стоит подумать о портировании использования cfgrid на один из плагинов сетки jQuery?

Или использовать <cfwindow> вместо Fancybox?

...