2013-10-22 23 views
0

我需要爲kentico項目創建一個自定義web部件。我向Web部件添加了一個屬性,用於設置圖像的路徑。用戶需要在路徑中,他希望該文件夾到文件(見截圖,這可能是路徑)通過webpart中的路徑訪問文件

enter image description here

但是我在我的web部件的代碼隱藏德現在卡住。如何在代碼隱藏中獲取完整路徑,獲取所有圖像併爲每個圖像添加一個在我的web部件上。

我無法顯示太多的代碼,因爲我只獲得了webpart(property)的基本代碼。我無法在網上找到這樣的例子,並在現有的kentico webparts中找到,但沒有找到任何東西。

謝謝。

回答

0

目前還不清楚您實際需要哪些幫助。

  • 您是否無法在web部件設置的屬性值
  • 你無法從WebPart屬性得到一個正確的值
  • 你是無法得到的文件

在問候要獲取文檔列表,請使用以下任一類型來完成此操作。

TreeHelper或TreeProvider類。

+0

我想打一個自定義的控制和顯示圖像在那個控制。我爲此使用了哪些屬性:image,pâth,...以及如何訪問web部件後面的代碼中的圖像,以便我可以顯示它。謝謝 –

0

在您的WebPart中,確保您使用的表單控件(CMSSiteManager /開發/表單控件)允許您選擇路徑。像「單路徑選擇器」。 然後,在您的代碼中,您將使用窗體控件創建一個與列名稱集名稱相同的屬性。

在你描述的情況下,所有的圖像將是節點樹下節點,以便您可以給他們打電話類似的東西:

string folder = "/images/%"; // this will be populated from WebPart via a property 
List<string> paths = new List<string>(); 
TreeProvider treeProvider = new TreeProvider(); 
TreeNodeDataSet imageNodes = treeProvider.SelectNodes(CMSContext.CurrentSiteName, folder, CMSContext.PreferredCultureCode, false); 
foreach (TreeNode imageNode in imageNodes) 
{ 
    string path = ValidationHelper.GetString(imageNode["YourImageColumnName"], ""); 
    if (path.Length > 0) 
    { 
     paths.Add(path); 
    } 
} 

...

0

對於Web部件,您可以創建公共每個屬性代碼後面的屬性和使用get和set。 例如, 想,我有一個web部件屬性ImagePath 然後在後面的代碼

public string ImagePath 
    { 
     get 
     { 
      return ValidationHelper.GetString(GetValue("ImagePath"),defaultPath); 
     } 
     set 
     { 
      SetValue("ImagePath", value); 
     } 
    } 

,你可以在你的代碼中使用這個公共財產的背後