CategoryItemField - 如何获取选项ID和文本值的列表

时间:2015-06-11 19:31:18

标签: c# .net podio

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

            }

2 个答案:

答案 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

C#客户端库Link和文档link以供参考。

答案 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'];
      }
   }