簡體   English   中英

如何從WebPart中的頁面獲取WebPart中自定義設置的引用?

[英]How to get a reference to custom settings in webpart from a page within webpart?

我創建了一個Webpart,然后創建了第二個.cs頁面,該頁面將呈現自定義html。 它基本上只是一個顯示圖像的簡單頁面。 但是,在第二個.cs頁中,我需要訪問Web部件中的自定義設置。 單擊輔助頁面的鏈接后,如何訪問主Web部件中的自定義工具窗格設置?

第二頁是從VS 2010生成的,位於layouts文件夾中,如下所示:

    public partial class GetFile : LayoutsPageBase
    {

我想我必須從Web部件繼承一些東西才能做到這一點,但是真的不確定如何?

您可以使用SPLimitedWebPartManager類訪問Web部件屬性,方法是閱讀頁面上的Web部件集合及其屬性,如下所示,

        var web = SPContext.Current.Web;
        var currentPageURL = "//URL of the page on which the Web part is present";
        var page = web.GetFile(currentPageURL);
        using (SPLimitedWebPartManager webPartManager = page.GetLimitedWebPartManager(PersonalizationScope.Shared))
        {
            try
            {
                var webPartList = from System.Web.UI.WebControls.WebParts.WebPart webPart in webPartManager.WebParts select webPart;

                foreach (System.Web.UI.WebControls.WebParts.WebPart webPart in webPartList.ToList())
                {
                    if (webPart.Title.ToLower() == "//Name of the web part for which you want to read the properties")
                    {
                        PropertyInfo[] wptProperties = webPart.GetType().GetProperties(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);

                        foreach (PropertyInfo property in wptProperties)
                        {
                            if (property.Name == "//Name of the web property which you want to get")
                            {
                                // Following code updates the web part property, you can also read it
                                property.SetValue(webPart, "value to be set", null);
                                webPartManager.SaveChanges(webPart);
                                break;
                            }
                        }
                    }
                }
                Response.Redirect(currentPageURL);
            }
            finally
            {
                webPartManager.Web.Dispose();
            }
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM