Why would an Edit button not change the fields in a Tab Container into Edit Mode? Fields outside the Container change mode as expected, but anything inside the Container remains in Read Mode. Is there a setting I need to change in the Dojo Container?
<xp:button value="Edit" id="editButton"
rendered="#{javascript:!doc1.isEditable();}" style="text-align:left">
<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
<xp:this.action>
<xp:changeDocumentMode mode="edit" var="doc1"></xp:changeDocumentMode>
</xp:this.action>
</xp:eventHandler>
</xp:button>
ジェレミーの要求に応じて更新
TabContainer は、個々のカスタム コントロールで構成される TabPanes を保持します。上のボタンを使用して編集モードに切り替えると、コンテナの外側のフィールドのみが編集可能になります。(コードを説明するためにテキストを追加する必要がありました)
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xc="http://www.ibm.com/xsp/custom" dojoTheme="true"
dojoParseOnLoad="true" xmlns:xe="http://www.ibm.com/xsp/coreex">
<script type="text/javascript">
dojo.require("dijit.layout.ContentPane");
dojo.require("dijit.layout.TabContainer");
</script>
<xc:header></xc:header>
<xe:djTabContainer id="djTabContainer1"
style="height:975px;width:1000px;margin">
<xe:djTabPane id="djTabPane1" title="Prospect / Broker">
<xc:panel1></xc:panel1>
</xe:djTabPane>
<xe:djTabPane id="djTabPane2" title="History">
<xc:panel2></xc:panel2>
</xe:djTabPane>
<xe:djTabPane id="djTabPane3" title="Vendor / Quote">
<xc:panel3></xc:panel3>
</xe:djTabPane>
<xe:djTabPane id="djTabPane4" title="Supporting Attachments">
<xc:panel4></xc:panel4>
</xe:djTabPane>
<xe:djTabPane id="djTabPane5" title="Sign and Submit">
<xc:panel5></xc:panel5>
</xe:djTabPane>
</xe:djTabContainer>
</xp:view>
これは、カスタム コントロールの 1 つの例外です。
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" dojoParseOnLoad="true" dojoTheme="true">
<xp:panel>
<fieldset class="fieldGroup">
<legend> PROSPECT INFORMATION </legend>
<xp:table style="width:90%">
<xp:tr>
<xp:td style="width:20%">
<xp:label value="Employer Name:"
id="pREmpName_Label1" for="pREmpName1">
</xp:label>
<xp:label id="label35" style="color:rgb(255,0,0);font-weight:bold font-size:14pt" value="*" rendered="# {javascript:doc1.isEditable();}">
</xp:label>
</xp:td>
<xp:td style="width:35%">
<xp:inputText value="#{doc1.PREmpName}"
id="pREmpName1" style="width:250px">
<xp:this.validators>
<xp:validateRequired
message="Employer Name is required (PROSPECT INFORMATION)">
</xp:validateRequired>
</xp:this.validators>
<xp:this.required><![CDATA[#{javascript:if( @IsDocBeingSaved()==1){return true} else {return false}
}]]></xp:this.required>
</xp:inputText></xp:td>