以下是我的问题所在: 我有一个模态对话框,当我打开一个新对话框时,它会在模态对话框中打开contentOne.jsp。当我单击contentOne.jsp上的链接时,模式对话框将刷新并使用我的href引用打开contentTwo.jsp。然后我关闭对话框。当我再次打开对话框时,它会打开contentTwo.jsp而不是contentOne.jsp。我试过destroyDescendants,destroyRendering ....但是他们没有用。
我有一个标题,其中包含一个打开模式对话框的链接,如下所示:
<div style="position: relative;right: 50px; top: 15px;">
<a onclick="dijit.byId('selectEquipmentInfo').show(); return false;" href="" />Add Equipment</a>
</div>
<%-- start equipment info dialog link --%>
<div id="selectEquipmentInfo" style="display:none;" name="selectEquipmentInfo" dojotype="dijit.Dialog" draggable="false" title="Select Equipment">
<div style="width:870px; height:400px; padding: 10px; overflow-y:auto;" href="">
<%@ include file="../../StoreInfoArea/ProductFamilyDisplay.jspf"%>
</div>
</div>
这应该打开一个模态对话框。在我的ProductFamilyDisplay.jspf中,我有一个项目链接到'href'上的另一个jsp页面,如下所示
<div id="productFamily" class="productFamilyContainer">
<div id= "prdctFamilyRow" class="productFamilyColumn">
<c:forEach var="equipmentInfo" items="${equipmentTestList}" varStatus="status">
<a href="${EquipmentModelsViewURL}"><c:out value="${equipmentInfo.value}" /></a><br />
</c:forEach>
</div>
这将在同一个模态对话框上呈现,并且由这个javascript控制:
<script type="text/javascript">
dojo.addOnLoad (function(event){
dojo.connect(dijit.byId('selectEquipmentInfo'), 'onClick', clicked);
});
var clicked=function(event) {
var dialog=dijit.byId('selectEquipmentInfo');
var contentNode=dialog.domNode;
var node = event.target;
var attrId = dojo.attr(node, "id");
if (attrId =="dijitCloseLink" || attrId == "dijitCloseImg") {
dialog.set('href','');
} else {
if("a" == node.nodeName.toLowerCase()){
dialog.href=node.href;
dialog.refresh();
dojo.stopEvent(event);
}
}
};
</script>
答案 0 :(得分:0)
我无法找到销毁Dialog的代码。尝试下面的代码。将此代码放在要创建对话框的div中。
dojo.connect(selectEquipmentInfo, "hide", function(e){
dijit.byId("selectEquipmentInfo").destroy();
});