0

我正在尝试通过 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);
                }

            }
4

2 回答 2

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

C# 客户端库链接和文档链接供任何参考。

于 2017-01-06T07:14:08.347 回答
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'];
      }
   }  
于 2016-02-16T15:19:11.850 回答