kentico通过API添加新表单字段

kentico通过API添加新表单字段,kentico,Kentico,大家好,Kentico的专家们 我需要通过Kentico API动态创建一些新表单字段。我找到了一个解决方案,但它是针对Kentico 6的,在我的版本中不可用(我使用的是Kentico 8) 请帮忙 谢谢, Duong这应该是可行的: string classname=“classname”; DataClassInfo dci=DataClassInfo提供者.GetDataClassInfo(classname); 如果(dci!=null) { FormInfo fi=新的FormIn

大家好,Kentico的专家们

我需要通过Kentico API动态创建一些新表单字段。我找到了一个解决方案,但它是针对Kentico 6的,在我的版本中不可用(我使用的是Kentico 8)

请帮忙

谢谢,
Duong

这应该是可行的:

string classname=“classname”;
DataClassInfo dci=DataClassInfo提供者.GetDataClassInfo(classname);
如果(dci!=null)
{
FormInfo fi=新的FormInfo(dci.ClassFormDefinition);
如果(fi!=null)
{
//字段定义
FormFieldInfo ffi=新的FormFieldInfo();
ffi.Name=“FieldName”;
ffi.AllowEmpty=真;
ffi.系统=错误;
ffi.FieldType=CMS.FormEngine.FormFieldControlTypeEnum.UploadControl;
ffi.可见=真实;
ffi.Caption=“字段标题”;
ffi.Enabled=真;
//设置与您相关的任何属性
fi.附加格式(ffi);
TableManager tm=新的TableManager(空);
tm.AddTableColumn(dci.ClassTableName,ffi.Name,“uniqueidentifier”,true,null);
dci.ClassXmlSchema=tm.GetXmlSchema(dci.ClassTableName);
dci.ClassFormDefinition=fi.GetXmlDefinition();
//更新DataClassInfo对象
SetDataClassInfo(dci);
//使用新字段更新继承的类
FormHelper.UpdateInheritedClass(dci);
}
}   

您始终可以在上检查版本之间的API更改。

这应该可以:

string classname=“classname”;
DataClassInfo dci=DataClassInfo提供者.GetDataClassInfo(classname);
如果(dci!=null)
{
FormInfo fi=新的FormInfo(dci.ClassFormDefinition);
如果(fi!=null)
{
//字段定义
FormFieldInfo ffi=新的FormFieldInfo();
ffi.Name=“FieldName”;
ffi.AllowEmpty=真;
ffi.系统=错误;
ffi.FieldType=CMS.FormEngine.FormFieldControlTypeEnum.UploadControl;
ffi.可见=真实;
ffi.Caption=“字段标题”;
ffi.Enabled=真;
//设置与您相关的任何属性
fi.附加格式(ffi);
TableManager tm=新的TableManager(空);
tm.AddTableColumn(dci.ClassTableName,ffi.Name,“uniqueidentifier”,true,null);
dci.ClassXmlSchema=tm.GetXmlSchema(dci.ClassTableName);
dci.ClassFormDefinition=fi.GetXmlDefinition();
//更新DataClassInfo对象
SetDataClassInfo(dci);
//使用新字段更新继承的类
FormHelper.UpdateInheritedClass(dci);
}
}   
您可以随时检查上不同版本之间的API更改