Kentico 10中自定义表中字段的访问列表选项

时间:2017-05-09 13:46:27

标签: kentico

我有一个自定义表,其中包含一些字段,这些字段具有列表选项供用户在添加内容时进行选择。 API中是否有允许我访问特定字段的选项的内容,以便我可以在过滤小部件中使用这些相同的选项? List Example

如下所示,但适用于自定义表格中的字段?

var guids = ParentDocument.GetValue("CustomFieldName").Split(';');
var referencedDocs = DocumentHelper.GetDocuments().WhereIn("DocumentGuid", guids);

更新 - 代码中的链接更改时的代码:

  protected string[] GetFormFieldOptions()
    {
        DataClassInfo dci = DataClassInfoProvider.GetDataClassInfo("custom.MyPageTypeName");
        if (dci != null)
        {
            //Get the data from the form field
            FormInfo fi = new FormInfo(dci.ClassFormDefinition);
            FormFieldInfo ffi = fi.GetFormField("Industry");
            string[] industries = ffi.Settings["Options"].ToString().Split('\n'); 
            return industries;
        }
        return null;
    }

2 个答案:

答案 0 :(得分:1)

使用DataClassInfoProvider获取所需的数据。查看this blog post以查看更多详细信息。

答案 1 :(得分:0)

您可以使用与问题相同的代码。不同之处在于您需要获得2种不同的东西,这些东西在" Page"或"文件"电平:

  1. 自定义表格对象
  2. 基于#1的自定义表项
  3. 您使用API​​获取自定义表项:

    var cti = CustomTableItemProvider.GetItem(<id or guid>, "yourcustom.tableclassname);
    if (cti != null)
    {
        string[] s = ValidationHelper.GetString(cti.GetValue("YourField"), "").Split(";");
    }
    

    <强>更新
    要在字段中获取动态选项列表,您只需使用列表控件(如下拉列表或单选按钮列表)作为控件(相对于文本框)。然后在下拉列表的属性中,您可以将其设置为查询。在查询中输入类似

    的内容
    -- if you wan to have a 'select one' add this
    SELECT '', '-- select one --'
    UNION
    SELECT ItemID, FieldName
    FROM CustomTable_Name
    ORDER BY 2