1

私の問題の流れは次のとおりです。モーダル ダイアログが 1 つあり、新しいダイアログを開くと、モーダル ダイアログ内で contentOne.jsp が開きます。contentOne.jsp のリンクをクリックすると、モーダル ダイアログが更新され、私の href 参照で contentTwo.jsp が開きます。次に、ダイアログを閉じます。ダイアログを再度開くと、contentOne.jsp ではなく contentTwo.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>
4

1 に答える 1

0

ダイアログを破棄するコードが見つかりません。以下のコードを試してください。このコードを、ダイアログを作成している div に配置します。

   dojo.connect(selectEquipmentInfo, "hide", function(e){
                dijit.byId("selectEquipmentInfo").destroy(); 
            });
于 2012-06-05T18:31:22.383 に答える