C# 通过Web部件中的路径访问文件

C# 通过Web部件中的路径访问文件,c#,asp.net,kentico,C#,Asp.net,Kentico,我需要为kentico项目创建一个自定义Web部件。我在Web部件中添加了一个属性,用于设置图像的路径。用户需要在他想要的文件夹路径中归档(请参见屏幕截图,这可以是路径) 但我现在被困在我的网页部件的代码隐藏中。如何在codebehind中获取完整路径,获取所有图像,并为我的Web部件上的每个图像添加一个 我不能显示太多的代码,因为我只得到了webpart(属性)的基本信息。我在网上找不到这样的例子,我查阅了kentico现有的网页,但什么也没找到 谢谢。我不清楚你到底需要哪项帮助 您在设置

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

但我现在被困在我的网页部件的代码隐藏中。如何在codebehind中获取完整路径,获取所有图像,并为我的Web部件上的每个图像添加一个

我不能显示太多的代码,因为我只得到了webpart(属性)的基本信息。我在网上找不到这样的例子,我查阅了kentico现有的网页,但什么也没找到


谢谢。

我不清楚你到底需要哪项帮助

  • 您在设置Web部件中的属性值时遇到问题吗
  • 您是否无法从webpart属性获取正确的值
  • 您无法获取文档吗
关于获取文档列表,请使用以下任一类型来完成此操作


TreeHelper或TreeProvider类。

在您的Web部件中,确保您使用的表单控件(CMSSiteManager/Development/Form Controls)允许您选择路径。类似于“单路径选择器”。 然后在代码中创建一个与使用表单控件时设置的列名同名的属性

在您描述的情况下,所有图像都将是节点树下的节点,因此您可以这样称呼它们:

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);
    }
}
string folder=“/images/%”;//这将通过属性从Web部件填充
列表路径=新列表();
TreeProvider TreeProvider=新的TreeProvider();
TreeNodeDataSet imageNodes=treeProvider.SelectNodes(CMSContext.CurrentSiteName,文件夹,CMSContext.PreferredCultureCode,false);
foreach(imageNodes中的TreeNode imageNode)
{
字符串路径=ValidationHelper.GetString(imageNode[“YourImageColumnName”],“”);
如果(路径长度>0)
{
路径。添加(路径);
}
}

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

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

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

我想创建一个自定义控件并在该控件中显示图像。我应该为此使用什么属性:image,p–th,。。。我怎样才能访问网页部件后面的反编码图像,以便显示它。谢谢
 public string ImagePath
    {
        get
        {
            return ValidationHelper.GetString(GetValue("ImagePath"),defaultPath);
        }
        set
        {
            SetValue("ImagePath", value);
        }
    }