通过webpart中的路径访问文件

时间:2013-10-22 10:21:19

标签: c# asp.net kentico

我需要为kentico项目创建自定义webpart。我在webpart中添加了一个属性,用于设置图像的路径。用户需要在他想要的文件夹的路径中存档(见截图,这可能是路径)

enter image description here

但我现在已经陷入了我的webpart的代码隐藏中。如何在代码隐藏中获取完整路径,获取所有图像并在我的webpart上为每个图像添加。

我无法显示更多代码,因为我只获得了webpart(属性)的基础知识。我无法在网上找到这样的例子,并在现有的kentico网站上发现,但没有找到任何东西。

谢谢。

3 个答案:

答案 0 :(得分:0)

我不清楚你真正需要帮助的项目。

  • 您是否在设置webpart中的属性值时遇到问题
  • 您是否无法从webpart属性中获取正确的值
  • 您无法获取文件

关于获取文档列表,请使用以下任一类型来完成此操作。

TreeHelper或TreeProvider类。

答案 1 :(得分: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);
    }
}

...

答案 2 :(得分:0)

对于webpart的每个属性,您可以在后面的代码中创建公共属性,并使用get和set。 例如, 假设,我有一个webpart属性ImagePath 然后在代码背后

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

您可以在代码中使用此公共属性