【问题标题】:kentico add new form field via APIkentico 通过 API 添加新的表单字段
【发布时间】:2017-04-26 13:40:00
【问题描述】:

Kentico 专家您好,

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

https://devnet.kentico.com/articles/how-to-add-a-new-field-to-a-document-type-using-api

请帮忙!

谢谢, 杨

【问题讨论】:

    标签: kentico


    【解决方案1】:

    这应该有效:

    string classname = "classname";
    DataClassInfo dci = DataClassInfoProvider.GetDataClassInfo(classname);
    if (dci != null)
    {
        FormInfo fi = new FormInfo(dci.ClassFormDefinition);
        if (fi != null)
        {
            // Field definition
            FormFieldInfo ffi = new FormFieldInfo();
            ffi.Name = "FieldName";
            ffi.AllowEmpty = true;
            ffi.System = false;
            ffi.FieldType = CMS.FormEngine.FormFieldControlTypeEnum.UploadControl;
            ffi.Visible = true;
            ffi.Caption = "Field Caption";
            ffi.Enabled = true;
            // Set whatever properties are relevant to you
    
            fi.AddFormItem(ffi);
    
            TableManager tm = new TableManager(null);
            tm.AddTableColumn(dci.ClassTableName, ffi.Name, "uniqueidentifier", true, null);
    
            dci.ClassXmlSchema = tm.GetXmlSchema(dci.ClassTableName);
            dci.ClassFormDefinition = fi.GetXmlDefinition();
    
            // Update DataClassInfo object
            DataClassInfoProvider.SetDataClassInfo(dci);
    
            // Update inherited classes with new field
            FormHelper.UpdateInheritedClasses(dci);
    
        }
    }   
    

    您可以随时在Kentico DevNet 上查看版本之间的 API 更改。

    【讨论】:

      猜你喜欢
      • 2020-08-10
      • 2020-09-14
      • 1970-01-01
      • 1970-01-01
      • 2011-07-15
      • 2018-04-07
      • 2011-01-10
      • 1970-01-01
      • 2015-12-31
      相关资源
      最近更新 更多