2016-04-08 49 views
0

Farklı departmanların raporlarını görüntüleyen SharePoint çevrimiçi 2013 sitesine sahibiz. Tüm bölümlerin farklı grupları vardır ve bu şekilde izin vermişlerdir, böylece bir grup diğer grup dosyalarını göremez. Galeriden dosyaları almak için JAVA SCRIPT ve AJAX kullanıyorum. Sayfamda JavaScript'i kullandığımda, istemci uygulamasında belgeleri açamıyorum, kullanıcıların çevrimiçi olarak indirmesi gerekenden daha ofisten açılır. Neyse, kullanıcı bunun üzerine tıklayabilir ve dosyaları indirecektir. Kitaplık ayarına gittim ve istemci uygulamasında açmak için varsayılan olarak değiştirdim, site koleksiyonu ve özellikleri de değişti ancak hala SharePoint dosyayı istemci uygulaması yerine çevrimiçi olarak açar. Biz bu test el bir ortam var değil ettik 2013.Office istemcisinde Office istemcisinde Microsoft Office dosyaları açılamıyor. SharePoint çevrimiçi 2013

(function() { 


    // Create object that have the context information about the field that we want to change it's output render 
    var galleryContext = {}; 
    galleryContext.Templates = {}; 


    galleryContext.Templates.Header = "<div class='gallery'>"; 
    galleryContext.Templates.Footer = "</div><div class='gallerydocs'></div>"; 


    // This line of code tell TemplateManager that we want to change all HTML for item row render 
    galleryContext.Templates.Item = galleryTemplate; 

    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(galleryContext); 

})(); 

// This function provides the rendering logic 
function galleryTemplate(ctx) { 
    var icon = ctx.CurrentItem["GalleryIcon"]; 
    var src = ctx.CurrentItem["FileRef"]; 
    var name = ctx.CurrentItem["Title"]; 
    var subtitle =ctx.CurrentItem["SubTitle"]; 
    var bgcolor = ctx.CurrentItem["BackgroundColor"]; 
    var fontcolor = ctx.CurrentItem["FontColor"]; 

    //var description = ctx.CurrentItem["Description"]; 
// console.log(JSON.stringify(ctx.CurrentItem["GalleryIcon"])); 
    // Return whole item html 
    return "<div onclick='javascript:getGalleryDocs("+'"'+ src + '"' +", "+'"'+ bgcolor + '"' +", "+'"'+ subtitle + '"' +", "+'"'+ fontcolor + '"' +", "+'"'+ name + '"' +")'><div class='galleryblock' style='background-color:" + bgcolor + ";color:"+ fontcolor+"' >"+name +"<br/><br/><p>"+subtitle +"</p></div></div>"; 
} 


function getGalleryDocs(folder , bgcolor, subtitle ,fontcolor , name) 
{ 

$.ajax({ 
     url: _spPageContextInfo.siteAbsoluteUrl + "/_api/web/GetFolderByServerRelativeUrl('"+folder+"')/files?$orderby=Title", 
     method: "GET", 
     headers: { "Accept": "application/json; odata=verbose" }, 
     success: function (data) { 
     var html="<div class='gallerynav'><span><a href='javascript:goback();'>BILLING REPORTS</a><span> <i class='fa fa-caret-right' ></i><span>"+name+"</span></div><div class='galleryblock' style='float:none;background-color:" + bgcolor + ";color:"+ fontcolor+"' >"+name +"<br/><br/><p>"+subtitle +"</p></div><span></span>"; 
     var results = data.d.results; 
     //console.log(JSON.stringify(results.length)); 
     html+= "<ul class='gallerylinks'>"; 
     if(results.length > 0) 
     { 
      for(i=0 ; i< results.length ; i++) 
      { 
       var item = results[i]; 
       html+= "<li><a href='" + item.LinkingUrl + "' target='_blank'>"+item.Title+"&nbsp;&nbsp;<i class='fa fa-external-link'></i></a></li>"; 
      } 
     } 
     else 
     { 
      html+="&nbsp;&nbsp;&nbsp;THERE ARE NO DOCUMENTS IN THIS GALLERY" 
     } 
     html+="<ul>" 
     //console.log(JSON.stringify(data)); 
     $(".gallery").hide(500); 
     $(".gallerydocs").html(html); 

     }, 
     error: function (data) { 
      $(".gallerydocs").html("You dont have permissions to view this folder!") 
     } 
     }); 
} 
function goback(){ 
$(".gallery").show(500); 
     $(".gallerydocs").html(""); 
} 

cevap

0

çevrimiçi ofis 2010 ve SharePoint kullanan ancak sizin href bağlantı ile ilgili bir şey olacaktır. Farklı şekilde inşa edilmesi gerekiyor. Aşağıdaki çözüm, müşterilerin uygulamasında umuyoruz.

Tam sonrası here

THis sonrası

Üzgünüm test edemez doğrudan indirmek için bir çözüm sunuyor bulunabilir

<a href="" 
    onclick="editDocumentWithProgID2('http://server/site/doclib/folder/Document.docx', 
    '', 
    'SharePoint.OpenDocuments', '0', 
    'http://server/site', '0')"> 
    This will open the file in edit mode 
</a> 

deneyin

İyi şanslar

Alkışlar Truez

+0

Yalnızca bunların salt okunur olarak açılmasını veya kendi masaüstünde indirilmesini ve SharePoint'te depolanan ana dosyaya etkilemeyecek değişiklikler yapabilmelerini sağlayabilirler. – James

+0

Dosyayı indirme hakkında bilgi almak için ikinci bağlantıyı kontrol edin, bir kez daha HTML'nize küçük bir ince ayar yapın. – Truezplaya