我有一个自定义表,其中包含一些字段,这些字段具有列表选项供用户在添加内容时进行选择。 API中是否有允许我访问特定字段的选项的内容,以便我可以在过滤小部件中使用这些相同的选项?
如下所示,但适用于自定义表格中的字段?
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;
}
答案 0 :(得分:1)
使用DataClassInfoProvider获取所需的数据。查看this blog post以查看更多详细信息。
答案 1 :(得分:0)
您可以使用与问题相同的代码。不同之处在于您需要获得2种不同的东西,这些东西在" Page"或"文件"电平:
您使用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