2014-05-22 21 views
5

Zostałem powierzony migrację istniejącej niestandardowej wtyczki z SharePoint 2010 do 2013. Rozwiązanie SharePoint 2013 powinno utworzyć niestandardową kolumnę, dla której dane powinny zostać pobrane z naszego produktu (aplikacji) za pomocą usługi internetowej. W 2010 r. Lokalizacja pliku js i funkcja została wywołana z pliku fldtypes_xxxx.xml za pomocą metody renderpattern. Ale w 2013 roku, ponieważ interfejs użytkownika się zmienił, nie mogę połączyć pliku JS. Dlatego musiałem użyć właściwości JSLink. Nawiązano do poniższego artykułu msdn i wypróbowałem to samo.Niestandardowe pole w SharePoint 2013

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

Teraz chciałbym, aby nawiązać połączenie webservices z pliku JS. Potrzebuję uzyskać informacje o dokumencie, takie jak listid, itemID i wysłać go do naszej niestandardowej usługi sieciowej, która obsługuje żądanie, które inturn powinien wysłać wywołanie usługi internetowej do naszej zewnętrznej aplikacji i uzyskać dane dla odpowiedniego dokumentu w bibliotece programu Sharepoint.

Proszę mnie o tym poprowadzić.

Jak dodać połączenie z poniższej funkcji.

(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

Dlaczego nie możesz spróbować: var color = ctx.CurrentItem.NameOfYourColumn; ORAZ Sprawdź, czy nazwa kolumny jest prawidłowa. Ponieważ wczoraj utworzyłem kolumnę w trybie edycji, a kiedy wpisałem nazwę kolumny, która została utworzona z inną nazwą, jak: "poakspoK" i chciałem "Typ". :) –

+0

Nie jestem pewien, czy problem jest taki sam jak ten, który miałem w zeszłym tygodniu, ale spójrz [tutaj] [http://sharepoint.stackexchange.com/questions/139771/how-to-access-a-custom -field-of-a-list-using-rest] - Myślę, że to może być ten sam problem i musisz zaimplementować własny niestandardowy punkt końcowy ... – Markus

Odpowiedz

0

Powyższy kod służy do renderowania pola w widoku. W tym przypadku, można uzyskać te właściwości w favoriteColorViewTemplate funkcji:

  • Lista ID: ctx.listName lub zmiennej globalnej _spPageContextInfo.pageListId
  • Item ID: ctx.CurrentItem.ID

Jeśli użyjesz funkcji w wyświetlić lub edytować formy, te właściwości są nieco inne:

  • Identyfikator listy: ctx.FormContext.listAttributes.Id lub _spPageContextInfo.pageListId
  • Item ID: renderCtx.FormContext.itemAttributes.Id

Prawdopodobnie najprostszym sposobem, aby zadzwonić zwyczaj serwis internetowy jest użyć jQuery $.ajax(...) połączenia. Sprawdzić kilka próbek tutaj:

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

Jeśli chcesz, aby odwołanie do jQuery, można to zrobić również za pomocą JSLink korzystając | symbol tak:

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

Powiązane problemy