2012-01-19 10 views
7

में मुझे पता है कि यह कैसे एक रिकार्डकैसे लागू करें "रद्द करें" कार्यक्षमता एक VisualForce पृष्ठ

<apex:commandButton action="{!save}" value="Save"/> 

को बचाने के लिए मैं एक बटन मौजूदा रिकॉर्ड नहीं सहेजना चाहते है (यानी। रद्द करें) और करने के लिए नेविगेट सहेजे गए रिकॉर्ड की सूची (यानी उस ऑब्जेक्ट प्रकार के लिए ऑब्जेक्ट्स की सूची)।

इस तरह कुछ ...

<apex:commandButton action="{!cancel}" value="Cancel"/> 

उत्तर

9

एक वस्तु के लिए सूची दृश्य अपने आधार यूआरएल/अपने वस्तु/ओ के लिए 3 पत्र उपसर्ग, उदाहरण के लिए है:

https://na1.salesforce.com/a0C/o 

आप तो सिर्फ एक क्रिया विधि बना सकती है जो उचित URL के साथ Pagereference लौटाती है और रीडायरेक्ट करने के लिए सेट की जाती है (pr.setRedirect(true))।

वैकल्पिक रूप से, आप एक मानक नियंत्रक के लिए एक विस्तार के रूप में अपने नियंत्रक का उपयोग कर सकता है, और सिर्फ call cancel on the standard controller:

// controller extension 
public class TimeSheetExtension 
{ 
    ApexPages.standardController m_sc = null; 

    public TimeSheetExtension(ApexPages.standardController sc) 
    { 
    m_sc = sc; 
    } 

    public PageReference doCancel() 
    { 
    return m_sc.cancel(); 
    } 
} 

// page 
<apex:commandButton action="{!doCancel}" value="Cancel"/> 

ध्यान दें कि यह जरूरी सूची दृश्य के लिए ले नहीं है, यह आप में लौट जाएँगे अंतिम पृष्ठ जिसे आप वीएफ पृष्ठ पर जाने से पहले देख रहे थे।

+1

मैं हमेशा नियंत्रक विधियों का उपयोग करने का प्रयास करता हूं, क्योंकि सैद्धांतिक रूप से उनके यूआरएल प्रारूप में बदलाव से सुरक्षित है। –

+0

उस ऑब्जेक्ट के रिकॉर्ड के लिए सभी ऑब्जेक्ट आईडी में शुरुआत में एक ही 3 अक्षर होंगे, लेकिन जैसा कि जेरेमी कहता है, जहां संभव हो वहां मानक कार्रवाइयों का उपयोग करना सबसे अच्छा है। आप कन्स्ट्रक्टर को मानक नियंत्रक पैरामीटर जोड़कर और '' टैग को संशोधित करके अपने नियंत्रक को एक्सटेंशन में बदलने में सक्षम होना चाहिए ताकि उसके पास 'मानक नियंत्रक =" MyObject__c "एक्सटेंशन =" MyCustomController "' –

+0

यह काम नहीं कर रहा है जब शून्य वापस लौटकर AJAX रास्ता रद्द करें। मैं वर्ष के क्षेत्र में अमान्य डेटा सहेजता हूं और फ़ील्ड मुझे त्रुटि देता है। रद्द होने पर यह केवल पढ़ने के लिए वापस जाता है लेकिन डेटा अमान्य डेटा में बदल गया है।हालांकि जब ताज़ा पृष्ठ पृष्ठ पर अमान्य डेटा नहीं होता है और पिछले डेटा प्रदर्शित होता है – powerfade917

7

आपको अपने रद्द बटन पर तत्काल टैग भी जोड़ना चाहिए, ताकि फ़ॉर्म रद्द करने के कार्य से पहले कोई सत्यापन नहीं चलाया जा सके। आवेदन करने वाले को रद्द आपरेशन visualforce आप प्रपत्र आपकी आवश्यकताओं के आधार मान्यता को रोकने के लिए किसी भी एक के तरीकों नीचे दिए गए फॉर्म validation.Use बंद कर देना चाहिए जबकि

<apex:commandButton action="{!cancel}" immediate="true" value="Cancel"/> 

http://blogs.developerforce.com/developer-relations/2008/12/using-the-immediate-attribute-on-commandlinks-and-commandbuttons.html

1

देखें।

विधि 1:

visualforce पेज में doctype में एचटीएमएल -5 का उपयोग करके आप का उपयोग करना चाहिए html-formnovalidate और में immediate बटन को रद्द का मतलब है। उदाहरण

<apex:commandButton action="{!cancel}" value="Cancel" immediate="true" 
        html-formnovalidate="formnovalidate" /> 

विधि 2 के लिए:

आप immediate कुंजी शब्द का उपयोग केवल फ़ॉर्म सत्यापन रोक लिए की जरूरत चाहिए। उदाहरण के लिए

<apex:commandButton action="{!cancel}" value="Cancel" immediate="true"/> 
संबंधित मुद्दे