2016-08-23 18 views
5

सीएसआर (क्लाइंट साइड रेंडरिंग) द्वारा एक शेयरपॉइंट फॉर्म ओवर्रिडन के भीतर।फॉर्म सबमिट करने के बाद रीडायरेक्ट (सीएसआर)

मैं एक नया बटन जो काफी छोड़कर दिए गए मापदंडों के साथ एक और रूप पर रीडायरेक्ट कि सहेजें बटन के रूप में ही करता है जोड़ने की कोशिश की।

बात यह है कि पुनर्निर्देशन काम नहीं करता है। मैंने फ़ॉर्म की "एक्शन" प्रॉपर्टी को बदलकर रीडायरेक्ट करने का प्रयास किया लेकिन यह गिनती में नहीं लग रहा है। <input id="custom_addLine" type="button" name="custom_addLine" value="+" class="ms-ButtonHeightWidth">

यहाँ समारोह निम्न बटन और addLine विधि द्वारा कहा जाता है:

यहाँ नया बटन है

$('#custom_addLine').click(function(event){ 
    event.preventDefault(); 
    addLine(getQueryStringParameter('ID')); 
}); 


function addLine(id) { 
    if(!PreSaveItem()) { 
     return false; 
    } 
    var actionUrl = "/Lists/PurchaseRequestLine/NewForm.aspx?PurchaseRequestID="+ id; 
    var encodedActionUrl = encodeURIComponent(actionUrl); 

    var newFormAction = location.pathname + '?Source=' + encodedActionUrl; 
    $('#aspnetForm').attr('action',newFormAction); 

    if(SPClientForms.ClientFormManager.SubmitClientForm('WPQ1')){ 
     return false; 
    } 
    WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions('custom_addLine', "", true, "", "", false, true)); 
} 

getQueryStringParameter URI से मानकों (पुनः प्राप्त करने के लिए एक कस्टम मेड समारोह है जो काम करता है)।

मुश्किल बात यह है कि मैं मामले में डिफ़ॉल्ट कार्रवाई यूआरआई संरक्षित करने के लिए मूल सहेजें बटन जिसके कारण कार्रवाई पैरामीटर मक्खी पर संशोधित किया गया है पर क्लिक किया जाता है, चाहते हैं।

उत्तर

4

आप मूल कार्रवाई से सीधे Source विशेषता बदल सकते हैं:

function addLine(id) { 
    if(!PreSaveItem()) { 
     return false; 
    } 

    var oldActionUrl = $('#aspnetForm').attr('action'); 
    var oldSource = GetUrlKeyValue("Source", true, oldActionUrl); 

    var newSource = "/Lists/PurchaseRequestLine/NewForm.aspx?PurchaseRequestID="+ id; 

    var newActionUrl = oldActionUrl.replace(oldSource, encodeURIComponent(newSource)); 

    WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions('custom_addLine', "", true, "", newActionUrl, false, true)); 
} 
+0

क्या यह अभी भी उसी स्थान पर फ़ॉर्म सबमिट करेगा? मेरा मतलब है मूल रूप से SharePoint के बाद पुनर्निर्देश यूआरआई में दिए गए "स्रोत" पैरामीटर वहाँ जहां स्रोत पैरामीटर पर बताया है की तुलना में कहीं और रीडायरेक्ट करने के लिए किसी भी तरह से है का उपयोग कर प्रस्तुत? – Hybris95

+0

मूल स्रोत पैरामीटर को मूल रूप से क्रिया में संग्रहीत किया जाता है? जब आप मूल क्रिया को पुनर्स्थापित करते हैं, तो अगला सबमिट उसी के परिणामस्वरूप होगा (इनपुट मानों के आधार पर) – aprovent

+0

मुझे समस्या को समझना निश्चित नहीं है। क्या फॉर्म एक्शन बदलता है? यदि नहीं, तो मेरा प्रतिवाद आपकी मदद कर सकता है, अन्यथा यह आपकी स्रोत विशेषता है जो काम नहीं करती है? – aprovent

2

कृपया निकालें event.preventDefault(); आपके कोड से, यह पुनर्निर्देशन के लिए ज़िम्मेदार है

$('#custom_addLine').click(function(event){  
addLine(getQueryStringParameter('ID')); 
}); 
संबंधित मुद्दे