Механизм генерации исходного кода для страниц в 5х

Добрый день коллеги! Подскажите пожалуйста, где найти "кусок кода" который отвечает за генерацию исходного кода страницы, на основании того, что мы "нарисовали" в дизайнере страницы. (Наподобии того, как ViewGenerator.js в 7х).
Ситуация следующая: после добавлении на страницу поля с типом "дата", связывании с DataSource, и компиляции - если отрыть страницу на клиенте - начинают не корректно работать остальные поля.
Если сравнивать исходный код рабочей страницы и "не рабочей" - то в последнем варианте для добавленного поля(контрол называется DateShowedEdit), в методе:

 protected virtual Terrasoft.UI.WebControls.Controls.DateTimeEdit CreateDateShowedEdit(){
        _dateShowedEdit= new Terrasoft.UI.WebControls.Controls.DateTimeEdit();
                        _dateShowedEdit.UId = new Guid("eeb97a42-0dfd-4403-b26c-1404462054a0");
                        _dateShowedEdit.Name = "DateDescr";
                        _dateShowedEdit.CreatedInSchemaUId = new Guid("18696044-f617-4347-8ec0-da74ef4166da");
                        _dateShowedEdit.ModifiedInSchemaUId = new Guid("18696044-f617-4347-8ec0-da74ef4166da");
                        _dateShowedEdit.CreatedInPackageId = Guid.Empty;
                        _dateShowedEdit.Tag = "";
                        _dateShowedEdit.CaptionColor = System.Drawing.Color.FromArgb(0,2,77,156);
                        _dateShowedEdit.Width = System.Web.UI.WebControls.Unit.Percentage(100);
                        _dateShowedEdit.DataSource = "DataSource";
                        _dateShowedEdit.ColumnUId = new Guid("a7a265bd-c473-48cf-aa29-4aee72410f18");
                        return _dateShowedEdit;
}

отсутствует свойство Kind - которое есть во всех других полях с типами дата:
например для поля EndDate:

_endDateEdit.Kind = Terrasoft.Common.DateTimeValueKind.Date;

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

Нравится

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

В 5.Х генерация происходит на уровне ядра системы, без исходников ядра её так просто не посмотреть.

Возможно, в этом случае поможет правка вручную метаданных.

Эта строка со свойством Kind в метаданных соответствует таким:

Метаданные для чтения:

"Kind": 1,

Реальные метаданные:

"AQ1": 1,

Попробуйте найти в метаданных найти дефектный компонент и если там нет этой строки, то добавить по аналогии с нормальными. Затем сохранить метаданные и потом схему открыть заново и опубликовать.

Александр, Добрый день!
Судя по всему я ошибся в том - что причиной ошибки может быть отсутствие свойства Kind (метаданные сгенерились по принципу который Вы написали - но на неправильную работу контрола это не повлияло). Временно, я обошел эту проблему с помощью "костыля" - поле не связывал с DataSource - но при инициализации страницы если данные в DataSource есть - вручную сетил в value контрола - а при сохранении - инсерт напрямую в БД.
Возможно Вы подскажете, какие варианты можно попробовать чтобы найти причину ошибки?
И еще интересует вопрос - если смотреть код на клиенте через консоль браузера, он весь в сжатом виде. В 7й версии такое сжимание js кода можно откючить в webConfig, есть ли похожие настройки для 5-ки?
Спасибо за помощь!:smile:

Возможно, контрол был создан неправильно или в тот момент был какой-то сбой. Попробуйте создать заново, настроив свойства аналогично с другими такого же типа.

"Повалий Влад" написал:И еще интересует вопрос - если смотреть код на клиенте через консоль браузера, он весь в сжатом виде. В 7й версии такое сжимание js кода можно откючить в webConfig, есть ли похожие настройки для 5-ки?

Такой возможности нет. Разработка под 5.X — это больше серверная логика.

Спасибо, попробую создать заново.

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