2011-01-31 10 views
7

trong SharePoint 2010 Tôi đã thêm danh sách webpart của tôi ở trên (danh sách thư viện tài liệu tiêu chuẩn hoặc danh sách - không quan trọng). Sau khi tab "Công cụ danh sách" này không hiển thị. Sau khi một số đào tôi đã tìm thấy, vấn đề đó tồn tại ngay cả khi tôi thêm một trong những tiêu chuẩn SharePoint WebParts.Tab "Công cụ danh sách" không còn khả dụng sau khi thêm trang web vào trang

Đây là cùng một vấn đề và mô tả làm thế nào để tái tạo nó: http://www.endusersharepoint.com/STP/viewtopic.php?f=10&t=2027

Có ai tìm thấy giải pháp hoặc cách giải quyết thực cho điều này?

// CHỈNH SỬA: Tôi đã tìm thấy "giải pháp". Ribbon được kết nối với webpart "thực tế". Một cú nhấp chuột vào danh sách (để đặt tiêu điểm vào danh sách) và tab sẽ hiển thị lại: D

+0

Bạn đã làm gì? Tôi sắp chết vì một giải pháp tốt! – bgmCoder

Trả lời

4

Nhấp vào danh sách (tập trung thiết lập trên đó) đã giải quyết được "vấn đề";)

+0

Nó hoạt động cho tôi, một lỗi;) – RezaRahmati

+0

Tôi nghĩ rằng đây nên là câu trả lời được chấp nhận (ít nhất là cho Sharepoint trực tuyến). – fortuneRice

13

Khi bạn thêm phần web vào chế độ xem danh sách chuẩn, trang không còn được phân loại là trang xem danh sách nữa, nhưng thay vào đó nó được phân loại là một trang ứng dụng.

Điều này có nghĩa là bạn mất trình đơn dải băng, cũng như công cụ chọn chế độ xem trong đường dẫn.

CẬP NHẬT

Bạn có thể xem mã mà giấu đi những chọn xem trong:

Microsoft.SharePoint.WebControls.ListTitleViewSelectorMenu.SingleWebPartPresentOnPage

Nhưng tôi có thể không có vẻ để tìm mã giấu băng.

CẬP NHẬT

Được rồi tôi nghĩ rằng điều này sẽ làm việc, thêm một nội dung biên tập web phần với mã này:

<script> 
setTimeout(function() { 
    var elem = document.getElementById("MSOZoneCell_WebPartWPQ2"); 
    if(elem != null) { 
     var dummyevent = new Array(); 
     dummyevent["target"] = elem; 
     dummyevent["srcElement"] = elem; 
     WpClick(dummyevent); 
    } 
}, 2000); 
</script> 

Thay id MSOZoneCell_WebPartWPQ2 với web di động khu vực một phần của danh sách xem phần web.

+0

Cập nhật 2 có nghĩa là gì khi bạn nói "điều này sẽ hoạt động". Đây không phải là chỉ cần nhấp vào webpart hơn và hơn nữa? – MgSam

+0

Không, anh ấy đang sử dụng 'setTimeout' thay vì' setInterval'. 'setInterval' sẽ làm cho chính nó lặp lại. Tuy nhiên, tôi đã thử điều đó và nó không hoạt động trong trường hợp của tôi. – Renan

+0

Tôi đã thử điều này, và nó sắp xếp các công trình (Sharepoint Server 2010). Sau khi tải trang, toàn bộ ruy-băng bắt đầu hiển thị - bạn sẽ nhận được điều tương tự nếu bạn sử dụng jquery để "nhấp" trên danh sách. Điều gì sẽ tốt hơn nếu các tab ruy-băng sẽ hiển thị mà không có ruy-băng được mở tự động. - Ah! Kiểm tra câu trả lời của @ katrine - điều đó chỉ thực hiện điều này! – bgmCoder

5

Sau một tấn bước qua SharePoint JS trong một trình gỡ lỗi, cuối cùng tôi đã tìm ra một cách để ngăn chặn vấn đề này.

Trong SharePoint 2010:

//Set focus on our list web part 
var webPart = document.getElementById('WebPartWPQ1'); 
WpClick({target: webPart}); 

//Prevent it from losing focus 
SP.Ribbon.WebPartComponent.$3_1.deselectWebPartAndZone = function() { }; 

Trong SharePoint 2013 Beta:

//Set focus on our list web part 
var webPart = document.getElementById('MSOZoneCell_WebPartWPQ2'); 
WpClick({target: webPart}); 

//Prevent it from losing focus 
SP.Ribbon.WebPartComponent.$3.deselectWebPartAndZone = function() { }; 

Note: Đây là siêu hacky, và không có cách nào hỗ trợ bởi Microsoft (như vậy, nó rất có khả năng để thay đổi trong một phiên bản tương lai hoặc thậm chí có thể là RTM của SharePoint 2013).

Ngoài ra, lưu ý rằng id phần web của bạn có thể khác nhau, vì vậy bạn nên kiểm tra kỹ xem bạn có tập trung vào phần web chính xác hay không.

Giải thích: Về cơ bản, nó sẽ ghi đè khả năng bỏ chọn một phần web của SP.Ribbon.WebPartComponent. Từ những gì tôi có thể biết, thuộc tính $ 3/$ 3_1 lưu trữ một tham chiếu đến cá thể SP.Ribbon.WebPartComponent.

Nếu có ai biết cách tốt hơn để truy cập vào trường hợp của SP.Ribbon.WebPartComponent ngoài tài sản $ 3/$ 3_1, vui lòng lên tiếng, vì điều đó sẽ làm cho phương pháp này mạnh mẽ hơn nhiều.

7

Điều này làm việc cho tôi, nhưng nó bắt đầu với tab tài liệu được chọn và tôi muốn chọn tab duyệt mặc định để bắt đầu, vì vậy tôi chỉ cần thêm một dòng đơn giản vào mã, hãy chọn lại tab mặc định:

 <script> 
     setTimeout(function() { 
     var elem = document.getElementById("MSOZoneCell_WebPartWPQ2"); 
      if(elem != null) { 
       var dummyevent = new Array(); 
       dummyevent["target"] = elem; 
       dummyevent["srcElement"] = elem; 
       WpClick(dummyevent); 
       _ribbonStartInit("Ribbon.Browse", true) 
      } 
     }, 2000); 
     </script> 
+0

Ah! Điều đó dường như gần như làm các trick trên Sharepoint Server của tôi 2010. Sau khi tải trang, sau đó tôi có thể thấy các tab ribbon mà không có toàn bộ ribbon mở; tuy nhiên, nếu tôi nhấp vào * ở bất kỳ đâu * trên màn hình bên ngoài ruy-băng hoặc danh sách, các tab ruy băng sẽ biến mất một lần nữa. – bgmCoder

+0

Vì sao bộ hẹn giờ? Tôi đã thử nó mà không có bộ đếm thời gian và nó dường như làm việc chỉ là tốt - tốt, đó là với điều này thay vào đó: '_spBodyOnLoadFunctionNames.push();' – bgmCoder

+0

Tôi có cùng một vấn đề. Nếu tôi nhấp vào bên ngoài danh sách, nó sẽ biến mất. – Kode