2009-02-11 4 views

Trả lời

8

Bạn nên sử dụng Tài nguyên phần Web có thể được liên kết hoặc nhúng. Bài viết này làm một công việc tốt trong việc giải thích làm thế nào để sử dụng chúng:

Best Practices for Managing Web Part Resources

+0

Điều đó là tốt trừ một phần, nơi anh thể xác định rõ con đường ("~/wpresources/namespace" vv) tùy thuộc GAC/Bin cài đặt. Đó là những gì WebPart.ClassResourcePath là dành cho - http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webpartpages.webpart.classresourcepath.aspx – Ryan

+0

Điểm tốt vì chúng tôi sử dụng thuộc tính này trong mã riêng của chúng tôi. – webwires

+2

liên kết đã chết! – Abhijit

0

Nhúng css vào webpart là tốt nếu bạn không bao giờ có kế hoạch để thay đổi CSS cho các webpart.

Tôi khuyên bạn nên bao gồm css trong một tệp riêng biệt được lưu trữ trong thư viện kiểu hoặc thay đổi tệp css được liên kết trong trang bố cục hoặc trang cái (chẳng hạn như core.css).

Chỉ cần xác định các lớp duy nhất cho webpart của bạn nếu được yêu cầu và để lại định nghĩa về cách hiển thị cho mỗi trang web. Điều này cho phép các khu vực khác nhau của triển khai SharePoint của bạn hiển thị cùng một webpart theo nhiều cách khác nhau.

Phương tiện bạn sẽ không bao giờ phải phát hành một dll để thay đổi vấn đề về giao diện nhỏ.

+0

Tôi đồng ý rằng liên kết chứ không phải là nhúng là cách để cập nhật - nhưng tôi nghĩ đó là một ý tưởng tồi cho css được liên kết với trang, trong trường hợp đó, bạn có thể chắc chắn khi phần web được thêm vào một trang rằng css là có quá? Bạn cũng đang thêm nó vào mọi trang bất kể nhu cầu. – Ryan

+0

Thay đổi câu trả lời để có một chút rõ ràng hơn – Nat

18

Đây là cách tiếp cận của tôi

protected override void CreateChildControls() 
{ 
    CssRegistration.Register("/_layouts/STYLES/WebPartName/styles.css"); 
} 

Điều này đảm bảo CSS được đăng ký và có một lần duy nhất và cung cấp cho các cơ hội để thay đổi CSS mà không redepolying toàn bộ dll.

+0

Tốt. Cảm ơn :) – l3dx

1

U cũng có thể sử dụng:

HtmlLink linkCss = new HtmlLink(); 

//Defining attributes and values of the link tag 
linkCss.Attributes.Add("href", "StyleSheet1.css"); 
linkCss.Attributes.Add("type", "text/css"); 
linkCss.Attributes.Add("rel", "Stylesheet"); 

//Add HtmlLink instance to the header of the current page 
Page.Header.Controls.Add(linkCss);