2014-05-22 8 views
5

में कस्टम फ़ील्ड मुझे मौजूदा कस्टम प्लगइन को SharePoint 2010 से 2013 तक माइग्रेट करने के साथ सौंपा गया है। SharePoint 2013 समाधान को एक कस्टम कॉलम बनाना चाहिए जिसके लिए webservice का उपयोग करके हमारे उत्पाद (एप्लिकेशन) से डेटा प्राप्त किया जाना चाहिए। 2010 के साथ, जेएस फ़ाइल स्थान और फ़ंक्शन को reldpattern का उपयोग करके fldtypes_xxxx.xml फ़ाइल से बुलाया गया है। लेकिन 2013 के साथ, यूआई बदल गया है, इसलिए मैं जेएस फाइल को लिंक करने में सक्षम नहीं हूं। इसलिए मुझे जेएसलिंक संपत्ति का उपयोग करना पड़ा। नीचे दिए गए msdn आलेख को संदर्भित किया और इसे आजमाया।SharePoint 2013

http://msdn.microsoft.com/en-us/library/jj220061%28v=office.15%29.aspx

अब मैं जे एस फ़ाइल से एक वेब सेवा कॉल करने के लिए करना चाहते हैं। मुझे दस्तावेज़ की जानकारी को सूचीबद्ध, itemID जैसे प्राप्त करने और इसे हमारे कस्टम webservice पर भेजने की आवश्यकता है जो अनुरोध को संभालता है जो हमारे बाहरी अनुप्रयोग में एक webservice कॉल भेजना चाहिए और शेयरपॉइंट लाइब्रेरी में उचित दस्तावेज़ के लिए डेटा प्राप्त करना चाहिए।

कृपया मुझे इस पर मार्गदर्शन करें।

नीचे दिए गए फ़ंक्शन से कॉल कैसे जोड़ें।

(function() { 
    var favoriteColorContext = {}; 

    favoriteColorContext.Templates = {}; 
    favoriteColorContext.Templates.Fields = { 
     "FavoriteColorField": { 
      "View": favoriteColorViewTemplate 
     } 
    }; 

    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(
     favoriteColorContext 
     ); 
})(); 

function favoriteColorViewTemplate(ctx) { 
    var color = ctx.CurrentItem[ctx.CurrentFieldSchema.Name]; 
    return "<span style='background-color : " + color + 
     "' >&nbsp;&nbsp;&nbsp;&nbsp;</span>&nbsp;" + color; 
} 
+0

आप कोशिश क्यों नहीं करते: var color = ctx.CurrentItem.NameOfYourColumn; और जांचें कि कॉलम का नाम सही है या नहीं। क्योंकि कल मैं संपादन मोड में एक कॉलम बनाता हूं, और जब मैंने अपने कॉलम का नाम टाइप किया जो कि अन्य नामों के साथ बनाया गया था: "poakspoK" और मैं "टाइप" चाहता था। :) –

+0

यह सुनिश्चित नहीं है कि यह मुद्दा पिछले सप्ताह के जैसा ही है, लेकिन एक नज़र डालें [यहां] [http://sharepoint.stackexchange.com/questions/139771/how-to-access-a- कस्टम -फील्ड-ऑफ-ए-लिस्ट-उपयोग-आराम] - मुझे लगता है कि यह एक ही मुद्दा हो सकता है और आपको अपने कस्टम एंडपॉइंट को भी लागू करने की आवश्यकता है ... – Markus

उत्तर

0

ऊपर दिए गए कोड दृश्य में फ़ील्ड को प्रतिपादित करने के लिए है। इस मामले में, आप favoriteColorViewTemplate समारोह में इन गुणों प्राप्त कर सकते हैं:

  • सूची ID: ctx.listName या वैश्विक चर से _spPageContextInfo.pageListId
  • आइटम आईडी: ctx.CurrentItem.ID

आप प्रदर्शन या संपादित में फ़ंक्शन का उपयोग करेंगे, तो रूप, ये गुण थोड़ा अलग हैं:

  • सूची आईडी: ctx.FormContext.listAttributes.Id या _spPageContextInfo.pageListId
  • आइटम आईडी: renderCtx.FormContext.itemAttributes.Id

शायद, सबसे आसान तरीका है आप कस्टम वेब सेवा को कॉल करने के लिए JQuery $.ajax(...) कॉल उपयोग करने के लिए है। यहाँ कुछ नमूने की जाँच करें:

  1. http://api.jquery.com/jquery.ajax/
  2. http://www.w3schools.com/jquery/ajax_ajax.asp

आप JQuery के संदर्भ बनाना चाहते हैं, तो आप यह भी JSLink उपयोग कर सकते हैं, इस तरह | प्रतीक का उपयोग:

{path to JQuery}|{path to your JS file}