私はapex:repeatタグのリストを表示するVfページを持っています。表示されるフィールドはすべてapex:inputfieldです。 2つのフィールドVFページのapex:repeatタグのapex:inputフィールドで検証を行う方法
- quantity__c
- Change__c
量iが変更フィールドは /必須満たされるべきで欲しいその後、変更された場合、私は、検証したいがあります。 VFレベルでこの検証を行うことはできますか?
これを達成する他の方法はありますか?
おかげ
アップデート:ここでLaceySnrにより示唆されるように、私が使用しているコードがあります。私は頂点メッセージがデバッグログに投げられますが、編集
for (integer i=0;i<List_FinalStdItems.size();i++)
{
system.debug('inside loop to check quantity is changed');
ItemSet.add(List_FinalStdItems[i].id);
system.debug('New quantity'+List_FinalStdItems[i].quantity__c +' old quantity'+MapStdItemsOldMap.get(List_FinalStdItems[i].id).quantity__c);
// system.debug('old quantity'+MapStdItemsOldMap.get(List_FinalStdItems[i].id).quantity__c);
if (MapStdItemsOldMap.get(List_FinalStdItems[i].id).quantity__c!=List_FinalStdItems[i].quantity__c)
{
system.debug('This quantity for item '+List_FinalStdItems[i].Name+ ' has changed');
if(List_FinalStdItems[i].Inventory_Change_Reason__c==null || List_FinalStdItems[i].Inventory_Change_Reason__c=='')
{
system.debug('This quantity for item '+List_FinalStdItems[i].Name+ ' has changed and Reason for change is empty');
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR,'Reason for change not entered for changed Quantity'));
error=true;
}
}
}
01:04:55.541 (541902000)|SYSTEM_METHOD_ENTRY|[151]|ApexPages.addMessage(ApexPages.Message)
01:04:55.541 (541985000)|VF_PAGE_MESSAGE|Reason for change not entered for changed Quantity
01:04:55.542 (542008000)|SYSTEM_METHOD_EXIT|[151]|ApexPages.addMessage(ApexPages.Message)
Vfpageでの表示されていない見ることができますあなたは直接のjavascriptを介してこれを行うことができ、またはあなたが<apex:actionSupport>
を使用することができ
<apex:outputpanel id="mess">
<apex:pageMessages />
</apex:outputpanel>
.
.
.
<apex:actionFunction name="save" action="{!Save}" rerender="mess"/>
私の主な関心事は、フィールドが変更されているかどうかを確認する方法です。リストをループして以前の値を保持しているリストで確認することをお勧めしますか? – Prady
それは私がそれをする方法です、ちょうどレコードIDのマップを保持する - >古い値とそれに対してチェックしてください。 –
デバッグログにapex:メッセージが表示されますが、VFページには表示されません。どんな考えでも何が原因である可能性がありますか? – Prady