我正在使用 javascript 来控制 ColdFusion 中 cfwindow 对象的创建。
cfwindow 附加到允许用户选择一个或多个记录并将它们分配或取消分配给单个记录的表单。
cfwindow 中的大多数表单为用户提供了输入表单元素然后提交的能力,然后窗口被销毁并刷新父窗口以显示结果。在我的情况下,用户可能会在完成之前在窗口对象中执行多个提交。
流程是这样的:
- 用户打开记录。
- 用户单击绑定到创建 cfwindow 对象的按钮。
- 用户将记录分配或取消分配给父记录。
- cfwindow 对象在每次提交分配时刷新。
- 用户使用关闭按钮关闭(销毁)窗口对象。
- 父窗口刷新。
现在,我拥有一切,但#4 工作。窗口确实刷新;但是,它不显示更改(已分配或未分配)记录。我确认数据层正常工作并对表格进行了更改;但是,它不会显示给用户。
所以,我需要一些有关表单的 onSuccess 控件的帮助。顺便说一句,我正在使用 cfform。
这是我的代码示例。如果您查看 addedit.cfm 的底部,您将看到 cfmodule 的代码。此页面与 cfassign.cfm 相同。唯一的区别是我创建了一个新表单,因为 cfwindow 不允许在父子之间使用相同的表单,而 cfmodule 允许。
添加了it.cfm
<!------------------------------------------------------------------
属性 - - - - - - - - - - - - - - - - - - - - - - - - - ------------------>
• 类别 。. . 从列表中选择。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . • 频率 。. . 从列表中选择。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . • 地位 。. . 从列表中选择。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . • 训练方法。. . 从列表中选择。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 持续时间 课程费用 • 初始要求 是 否 • 需要启动 是 否 评论(200 个字符限制) function cleanup() { //当 onHide 时,销毁 cfwindow ColdFusion.Window.destroy('prerequisite',true); //重新加载父页面以显示更改 window.location.reload(); } function showWin(id) { //我们有吗?试试 {ColdFusion.Window.destroy('prerequisite',true); } catch(e) { } ColdFusion.Window.create('prerequisite','Assign Prerequisites for #qryCourses.Course_Title#','cfassign.cfm?id='+id,{height:400,width:1150,模态:假,刷新显示:真});//获取窗口对象时赋值变量 ob=ColdFusion.Window.getWindowObject('prerequisite_body'); //强制窗口居中的命令 ob.center(); //关闭时清理窗口 ColdFusion.Window.onHide('prerequisite',cleanup); } cfassign.cfm ---> 销毁(“先决条件”,真);} catch(e) { } ColdFusion.Window.create('prerequisite','Assign Prerequisites for #qryCourses.Course_Title#','cfassign.cfm?id='+id,{height:400,width:1150,模态:假,刷新显示:真});//获取窗口对象时赋值变量 ob=ColdFusion.Window.getWindowObject('prerequisite_body'); //强制窗口居中的命令 ob.center(); //关闭时清理窗口 ColdFusion.Window.onHide('prerequisite',cleanup); } cfassign.cfm ---> 销毁(“先决条件”,真);} catch(e) { } ColdFusion.Window.create('prerequisite','Assign Prerequisites for #qryCourses.Course_Title#','cfassign.cfm?id='+id,{height:400,width:1150,模态:假,刷新显示:真});//获取窗口对象时赋值变量 ob=ColdFusion.Window.getWindowObject('prerequisite_body'); //强制窗口居中的命令 ob.center(); //关闭时清理窗口 ColdFusion.Window.onHide('prerequisite',cleanup); } cfassign.cfm ---> '为#qryCourses.Course_Title#分配先决条件','cfassign.cfm?id='+id,{height:400,width:1150,modal:false,refreshOnShow:true}); //获取窗口对象时赋值变量 ob=ColdFusion.Window.getWindowObject('prerequisite_body'); //强制窗口居中的命令 ob.center(); //关闭时清理窗口 ColdFusion.Window.onHide('prerequisite',cleanup); } cfassign.cfm ---> '为#qryCourses.Course_Title#分配先决条件','cfassign.cfm?id='+id,{height:400,width:1150,modal:false,refreshOnShow:true}); //获取窗口对象时赋值变量 ob=ColdFusion.Window.getWindowObject('prerequisite_body'); //强制窗口居中的命令 ob.center(); //关闭时清理窗口 ColdFusion.Window.onHide('prerequisite',cleanup); } cfassign.cfm ---> getWindowObject('prerequisite_body'); //强制窗口居中的命令 ob.center(); //关闭时清理窗口 ColdFusion.Window.onHide('prerequisite',cleanup); } cfassign.cfm ---> getWindowObject('prerequisite_body'); //强制窗口居中的命令 ob.center(); //关闭时清理窗口 ColdFusion.Window.onHide('prerequisite',cleanup); } cfassign.cfm ---><cfif StructKeyExists(form, "btnUnassignCourses") and StructKeyExists(form, "AssignedCourses") and len( form.AssignedCourses ) gt 0>
<!--- Remove courses as pre-requisites from the parent course. --->
<cfquery name="RemoveCoursePrerequisite" datasource="#Request.App.DSN#" >
</cfquery>
<cfelseif StructKeyExists(form, "btnAssignCourses") and StructKeyExists(form, "UnassignedCourses") and len( form.UnassignedCourses ) gt 0>
<!--- Add course as pre-requisites for the parent course. --->
<cfquery name="AddCoursePrerequisite" datasource="#Request.App.DSN#" >
</cfquery>
</cfif>
<table>
<tr>
<div class="ModuleFullName">
<td>
<div class="fieldWrapperControl">
<label>Assigned Courses (#qryAssignedCourses.Recordcount#)</label>
<cfselect
name="AssignedCourses"
style="font-size:.8125em; height:200px; width:500px;"
query="qryAssignedCourses"
display="Course_Description"
value="ID"
queryposition="below"
editable="no"
multiple="true">
</cfselect>
</div>
</td>
<div class="fieldWrapperButton">
<td style="vertical-align:middle;">
<cfinput type="submit" name="btnAssignCourses" value="<<" style="display:block;" />
<cfinput type="submit" name="btnUnassignCourses" value=">>" style="display:block;" />
</td>
</div>
<td>
<div class="fieldWrapperControl">
<label>Unassigned Courses (#qryUnassignedCourses.Recordcount#)</label>
<cfselect
name="UnassignedCourses"
style="font-size:.8125em; height:200px; width:500px;"
query="qryUnassignedCourses"
display="Course_Description"
value="Unassigned_ID"
queryposition="below"
editable="no"
multiple="true">
</cfselect>
</div>
</td>
</tr>
<tr>
<td colspan="3" style="font-size:.9em;"><label>** Press and hold down the Ctrl OR Shift key to select multiple courses.</label></td>
</tr>
</table>