2012-06-05 59 views
1

下面是我的問題流程: 我有一個模式對話框,當我打開一個新對話框時,它會在模態對話框中打開contentOne.jsp。當我點擊contentOne.jsp上的鏈接時,模式對話框將刷新並使用我的href引用打開contentTwo.jsp。然後關閉對話框。當我再次打開對話框時,它會打開contentTwo.jsp而不是contentOne.jsp。我嘗試了destroyDescendants,破壞了......但他們沒有奏效。Dojo - dijit.dialog

我有,有一個鏈接,打開如下所示的模式對話框的標題:

<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,我有一個項目鏈接到另一個JSP頁面上「HREF」像下面

<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

我無法找到的代碼來破壞對話。嘗試下面的代碼。把這段代碼放在你創建對話框的div裏。

dojo.connect(selectEquipmentInfo, "hide", function(e){ 
       dijit.byId("selectEquipmentInfo").destroy(); 
      }); 
+0

你好,使用.destroy()基本上會破壞整個對話框。當我再次點擊'Select Equipment'時,它不起作用,因爲這個代碼是dijit.byId('selectEquipmentInfo')。show();導致錯誤。 'selectEquipmentInfo'未定義。 – user1260084

+0

在這種情況下,需要再次調用您創建對話框的代碼。 –