我正在尝试通过API创建一个新的podio条目我可以设置文本类型字段和日期类型字段,但我似乎无法理清如何设置类别类型字段。 .NET的示例显示设置OptionId = x,其中x是类别字段的int值。但是,如果我不知道Id的价值怎么办?我的数据库中的字符串值与类别(下拉样式)字段中找到的文本值相匹配,但不确定我是否可以使用它来设置它?
这个例子没有工作b / c它没有选项中的值。
var typeCategory_ModuleStr = podioNewItem.Field(" module");
IEnumerable<CategoryItemField.Option> categories = typeCategory_ModuleStr.Options;
List<CategoryItemField.Option> moduleOptions = categories.ToList();
foreach (CategoryItemField.Option option in moduleOptions)
{
if (option.Text == tableRow["MODULE"].ToString())
{
typeCategory_ModuleStr.OptionId = Convert.ToInt32(option.Id);
}
}
答案 0 :(得分:1)
您可以使用以下代码示例获得带有选项文本的匹配选项。
var app = podioClient.ApplicationService.GetApp(123);
var options = app.Field<CategoryApplicationField>("category-field-external-id").Options;
var option = options.FirstOrDefault(x => x.Text == "MyOptionText");
if (option != null)
{
var optionId = option.Id;
}
然后你可以设置像这样的选项
Item myNewItem = new Item();
var categoryField = myNewItem.Field<CategoryItemField>("categories");
// Set value to a single option
categoryField.OptionId = 2; //option_id: 2
答案 1 :(得分:0)
您可以使用本页底部的沙箱找到应用中类别的选项ID: https://developers.podio.com/doc/applications/get-app-22349
或者您可以通过类似这样的内容(PHP)将文本值与选项ID匹配:
$country_list = PodioAppField::get( $this::$app_id, 'country' );
$all_options = $country_list->config['settings']['options'];
foreach ($all_options as $option) {
if ($option['text'] === $option_text_value){
$option_int_value = $option['id'];
}
}