我第一次尝试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上的事实相关?谢谢!
答案 0 :(得分:1)
不幸的是,混合jQuery和cfform的ajax绝不是一个好主意。也许考虑将cfgrid移植到jQuery网格插件之一?
或使用<cfwindow>
代替Fancybox?