C#操作Kentico cms 中的 content(winform环境)
前段时间做了个winform程序,去管理kentico网站的content,包括content节点的增删改查,以及相应节点内容的修改。现在将对content的操作方法简单的介绍一下。
我们想要操作kentico网站的content(如下图),操作步骤如下。

一、引入kentico相关的dll文件,配置数据库链接环境
不直接使用sql查询语句去操作,而是使用kentico cms的方法去直接操作,我们需要引入kentico cms系统中的dll文件,这些文件在kentico cms网站的/bin目录下面可以找到,就是一些前缀是CMS.的文件,如下图,下图只是一部分:

接下来就是需要在配置数据库连接,在app.config中添加配置代码如下:
<connectionStrings>
<add name="CMSConnectionString" connectionString="Persist Security Info=False;database=expert_fi_7;server=.\SQLEXPRESS;user id=sa;password=******;Current Language=English;Connection Timeout=240;" />
</connectionStrings>
该配置连接的name必须为CMSConnectionString,这样才能有cms类库自动的识别。
二、初始化kentico CMS环境
引入命名空间:using CMS.CMSHelper
在需要使用content操作的代码前加上
CMSContext.Init();
三、操作content节点
对节点的操作无非就是增、删、改、查这几种操作,下面一一介绍
- 查询操作
TreeProvider tree = new TreeProvider(CMSContext.CurrentUser);//获取当前content树对象 var node = tree.SelectSingleNode(CMSContext.CurrentSiteName
, "/Tuotteet" //该处为Alias path,见下图
, "en-us",true); //获取节点Tuotteet value = node.GetValue(columnNames["propertyName"]).ToString(); //获取某一属性值
//【注】该node不能直接用node.Children去获取,node.Children获取的只是最基本的信息 //获取指定节点所有属性名
DataClassInfo dci = DataClassInfoProvider.GetDataClass(node.NodeClassName);
var columnNames=new List<string>(); //创建属性名对象
if (dci != null)
{
CMS.FormEngine.FormInfo fi = new CMS.FormEngine.FormInfo(dci.ClassFormDefinition);
columnNames = fi.GetColumnNames();
} //获取所有子节点
var childrenNodes=node.Children如果你想获取所有子节点的属性,你可以遍历childrenNodes,然后使用SelectSingleNode(……)的方法去获取指定子节点的对象,然后去获取它的属性。
对于上面提到的Alias path,见下图示例:
- 添加节点
public void AddNode(string nodeAliasPath,List<string[]> categorys )
{
var parentNodeAliasPath = nodeAliasPath.Substring(, nodeAliasPath.LastIndexOf('/'));
var tree = new TreeProvider(CMSContext.CurrentUser);
var parentNode = tree.SelectSingleNode(CMSContext.CurrentSiteName, parentNodeAliasPath, "fi-FI", true);
var className = categorys[][];
TreeNode newNode = TreeNode.New(className, tree);
newNode.DocumentName = categorys[][];//设置节点名
newNode.DocumentCulture = "fi-FI";//设置节点的document环境
for (int i = ; i < categorys[].Length - ; i++)
{
newNode.SetValue(categorys[][i], categorys[][i]);//为节点添加新的属性,SetValue(属性名,值)
}
DocumentHelper.InsertDocument(newNode, parentNode, tree);
}这里要注意的是必须给节点新节点添加属性,不然该节点在添加后不会显示出来
- 删除节点
public void DeleteNode(string nodeAliasPath)
{
var tree = new TreeProvider(CMSContext.CurrentUser);
var deleteNode = tree.SelectSingleNode(CMSContext.CurrentSiteName, nodeAliasPath, "fi-FI", true);
if (deleteNode != null)
{
DocumentHelper.DeleteDocument(deleteNode, tree, true, true, true);
}
}关于DeleteDocument的说明,如下图

- 修改节点内容
public void UpdateNode(string nodeAliasPath,List<string[]> categorys )
{
var tree = new TreeProvider(CMSContext.CurrentUser);
var updateNode = tree.SelectSingleNode(CMSContext.CurrentSiteName, nodeAliasPath, "fi-FI", true);
updateNode.DocumentName = categorys[][];
for (int i = ; i < categorys[].Length-;i++ )
{
updateNode.SetValue(categorys[][i], categorys[][i]);
}
DocumentHelper.UpdateDocument(updateNode, tree);
}当然,还有很多节点的属性你可以修改,例子代码没有列出来。
就以上的这些内容,基本可以去简单操作kentico cms中的content内容了,欢迎大家讨论。
参考:http://devnet.kentico.com/Documentation.aspx
珍惜作者劳动成果,如须转载,请说明出处。
C#操作Kentico cms 中的 content(winform环境)的更多相关文章
- C#操作Kentico cms
C#操作Kentico cms 中的 content(winform环境) 前段时间做了个winform程序,去管理kentico网站的content,包括content节点的增删改查,以及相应节点内 ...
- 背水一战 Windows 10 (91) - 文件系统: Application Data 中的文件操作, Application Data 中的“设置”操作, 通过 uri 引用 Application Data 中的媒体
[源码下载] 背水一战 Windows 10 (91) - 文件系统: Application Data 中的文件操作, Application Data 中的“设置”操作, 通过 uri 引用 Ap ...
- Sitecore CMS中删除项目
如何删除项目以及如何在Sitecore CMS中恢复已删除的项目. 删除项目 有多种方便的方法可以删除Sitecore中的项目. 从功能区 在内容树中选择您要删除的项目. 单击功能区中“主页”选项卡的 ...
- Sitecore CMS中如何命名项目名称
如何在Sitecore CMS中命名项目,以及配置命名限制,“显示名称”是什么以及如何使用它. 任何其他名称的项目 当创建Sitecore的项目,内容编辑器要求制作者为新建项目提供名称.输入的名称将其 ...
- 如何删除Sitecore CMS中的项目
在此“如何”帖子中,我将介绍如何删除项目以及如何在Sitecore CMS中恢复已删除的项目. 删除项目 有多种方便的方法可以删除Sitecore中的项目. 从功能区 在内容树中选择您要删除的项目. ...
- Android开发---如何操作资源目录中的资源文件4 ---访问xml的配置资源文件的内容
Android开发---如何操作资源目录中的资源文件4 XML,位于res/xml/,这些静态的XML文件用于保存程序的数据和结构. XmlPullParser可以用于解释xml文件 效果图: 描述: ...
- Android开发---如何操作资源目录中的资源文件3--圆角边框、背景颜色渐变效果、边框颜色
Android开发---如何操作资源目录中的资源文件3 效果图 1.圆角边框 2.背景颜色渐变效果 1.activity_main.xml 描述: 定义了一个shape资源管理按钮 <?xml ...
- Android开发 ---如何操作资源目录中的资源文件2
Android开发 ---如何操作资源目录中的资源文件2 一.颜色资源管理 效果图: 描述: 1.改变字体的背景颜色 2.改变字体颜色 3.改变按钮颜色 4.图像颜色切换 操作描述: 点击(1)中的颜 ...
- python操作txt文件中数据教程[1]-使用python读写txt文件
python操作txt文件中数据教程[1]-使用python读写txt文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 原始txt文件 程序实现后结果 程序实现 filename = '. ...
随机推荐
- [CLR via C#]6. 类型和成员基础
原文:[CLR via C#]6. 类型和成员基础 6.1 类型的各种成员 在一个类型中,可以定义0个或多个以下种类的成员: 1)常量 常量就是指出数据值恒定不变的符号.这些符号通常用于使代码更 ...
- TLD跟踪算法优化(一)并行化
才学疏浅,仅仅言片语,仅仅求志同道的朋友一起交流研究. 并行化不算是算法的改进,仅仅是追求执行的实时性. 简要列举一个样例: TLD算法的C++版本号源代码里: LKTracker::trackf2f ...
- HTML5 Canvas简简单单实现手机九宫格手势密码解锁
原文:HTML5 Canvas简简单单实现手机九宫格手势密码解锁 早上花了一个半小时写了一个基于HTML Canvas的手势解锁,主要是为了好玩,可能以后会用到. 思路:根据配置计算出九个点的位置,存 ...
- SQL Server调优系列基础篇(常用运算符总结)
原文:SQL Server调优系列基础篇(常用运算符总结) 前言 上一篇我们介绍了如何查看查询计划,本篇将介绍在我们查看的查询计划时的分析技巧,以及几种我们常用的运算符优化技巧,同样侧重基础知识的掌握 ...
- hdu - 3049 - Data Processing(乘法逆元)
题意:N(N<=40000)个数n1, n2, ..., nN (ni<=N),求(2 ^ n1 + 2 ^ n2 + ... + 2 ^nN) / N % 1000003. 题目链接:h ...
- AngulaJS实战
AngulaJS实战总结, 带你进入AngularJS世界(待续) 使用AngularJS 进行Hybrid App 开发已经有一年多时间了,这里做一个总结. 一.AngularJS 初始化加载 ...
- Spring之SpringMVC(源码)启动初始化过程分析
1.说明 SpringMVC作为Spring提供的MVC实现,可以实现与Spring的天然无缝联合,因为具有很广泛的用途.具体的关于SpringMVC的处理流程逻辑我在这里就不在赘述了.还是来通过源码 ...
- Erlang运行中的错误
Erlang运行时发生错误时,会返回一些错误信息,理解这些信息,对于学好.用好Erlang来说是必要. Erlang中的运行错误包括:badarg, badarith, badmatch, funct ...
- javascript 学习总结(二)Array数组
1.数组常用方法 var colors = ["red", "blue", "green"]; //creates an array wit ...
- Building Modern Web Apps-构建现代的 Web 应用程序
Building Modern Web Apps-构建现代的 Web 应用程序 视频长度:1 小时左右 视频作者:Scott Hunter 和 Scott Hanselman 视频背景:Visual ...