Вопрос

Создание контрола без привязки к полю

Добрый день. Надо создать контрол без привязки к полю, так что бы он не выделялся по стилю. После мучительных попыток это сделать родился следующий код:

{
  "operation": "insert",
  "name": "UnBindedField",
  "values": {
    "layout": {
      "colSpan": 12,
      "rowSpan": 1,
      "column": 0,
      "row": 2,
      "layoutName": "CategoriesControlGroupContainer"
    },
    "itemType": Terrasoft.ViewItemType.CONTAINER,
    "enabled": true,
    "contentType": 0,
    "classes": {
           "wrapClassName": ["control-width-15", "control-right"]
           },
    "items": [
      {
        "className": "Terrasoft.Container",
        "caption" : "TestCaption_3",
        "itemType": Terrasoft.ViewItemType.CONTAINER,
        "classes": {
             "wrapClassName": ["label-wrap"]
             },
        "items": [{
              "className": "Terrasoft.Caption",
              "caption" : "TestCaption_3",
              "itemType": Terrasoft.ViewItemType.LABEL
            }]
      },
      {
        "className": "Terrasoft.TextEdit",
        "name": "UnBindedField_TextEdit",
        "itemType": Terrasoft.ViewItemType.CONTAINER,
 
      }
    ],
    "className": "Terrasoft.Container"
  },
  "parentName": "CategoriesControlGroupContainer",
  "propertyName": "items",
  "index": 4
}

визуально он удовлетворяет требованиям, но уж больно сложное объявление, и конечный контрол с текстом имеет название "AccountPageV2UnBindedField_TextEditContainer-el", что тоже не сильно красиво. 

Правильно ли я решил задачу, возможно есть более корректный способ добавления контролов?

Нравится

4 комментария

Добрый вечер.

Если вам не подходит привязка даже к виртуальному полю, тогда это единственный способ. По сути, при указании поля тоже самое генерируется за вас и передаться во viewgenerator, если вы опускаете поле – придется делать это руками. Имена тоже генерируются во viewgenerator (он сам добавляет суффиксы, префиксы). Также, если вы планируете писать/читать из этого контрола, рекомендую использовать привязку к виртуальному полю вместо ручной генерации.

VladKapitanchyk,

Спасибо, с виртуальными полями, конечно намного проще и понятнее, думаю мне они вполне подходят. Вопрос, а если мне нужен грид с данными из левого сервиса, каким образом его правильнее сделать?

Добрый вечер.

Как создать сам грид можете посмотреть в BaseSectionV2. Заполнение происходит через миксин GridUtilitiesV2, так что можете в своей схеме переопределить метод loadGridData.

VladKapitanchyk,

Спасибо

Показать все комментарии