EOR Posted June 4, 2020 Posted June 4, 2020 Здравствуйте. Существует две реализации одного проекта "Desktop" версия и "Web" версия. Для реализации функционала работы с вводом параметров запроса в базу данных в Web версии проекта необходимо отобразить CheckBox в заголовке поля (TUniDBGridColumn). Например вот так это реализовано в "Desktop" версии проекта (используется TcxDBVerticalGrid - DevExpress VCL): ВОПРОСЫ: 1. Есть ли возможность реализовать такое в UniDBVerticalGrid? Обходные пути через ClientEvents -> ExtEvents? 2. Как обработать изменение состояния CheckBox (OnChange)? Заранее спасибо. Quote
EOR Posted June 5, 2020 Author Posted June 5, 2020 Создаю динамически CheckBox'ы: // Создаем чекбоксы for i := 0 to UniDBVerticalGridVars.DBColumns.Count - 1 do begin uniDBGridColumn := TUniDBGridColumn(UniDBVerticalGridVars.DBColumns[i]); // if DataController.MacroList.Count > 0 then begin CheckBox := TUniCheckBox.Create(Self); with TUniCheckBox(InsertControl(CheckBox)) do begin; Top := 20 + i * 10; // Как найти смещение для попадания в нужную строку? Left := 20 + i * 10; // OnChange := UniCheckBoxChange; end; end; end; CheckBox'ы создаются но они перекрываются UniDBVerticalGrid'ом, то есть находятся под ним и невидимы. Методы CheckBox.BringToFront и UniDBVerticalGrid.SendToBack не работают. ВОПРОСЫ: 1. Как отобразить CheckBox'ы поверх грида??? 2. Как найти смещение для попадания CheckBox'а в нужную строку? 3. Как сделать отступ в заголовке uniDBGridColumn чтобы освободить место для CheckBox'а? Спасибо заранее. UPD: Пока увеличил отступ от левого края у грида. CheckBox'ы видно, но выглядит это очень коряво Вопросы, заданные выше, все еще актуальны. UPD2: Пробую изменить z-index для UniDBVerticalGrid: UniSession.AddJS('Ext.onReady(function(){'+UniDBVerticalGrid.JSName+'.getEl().setStyle(''z-index'','+IntToStr(99999)+')});'); Получаю ошибку: UniGUI 1.90.0.1526 Что делать??? Quote
EOR Posted June 5, 2020 Author Posted June 5, 2020 Вопрос с отображением CheckBox'ов поверх грида решен. Добавляем обработчик в UniDBVerticalGrid / ClientEvent / Extevent / OnAfterrender: function OnAfterrender(sender) { sender.getEl().setStyle('z-index','0'); } Остался последний вопрос: Как сделать отступ текста в заголовке uniDBGridColumn чтобы убрать наложение текста и CheckBox'ов? Спасибо заранее. Quote
Sherzod Posted June 6, 2020 Posted June 6, 2020 14 hours ago, EOR said: Как сделать отступ текста в заголовке uniDBGridColumn чтобы убрать наложение текста и CheckBox'ов? Здравствуйте, Можете прикрепить тестовый случай? Quote
EOR Posted June 6, 2020 Author Posted June 6, 2020 Прикрепляю тестовый проект. UniDBVGridCheckBoxedTitles.zip Quote
Sherzod Posted June 6, 2020 Posted June 6, 2020 1 hour ago, EOR said: Прикрепляю тестовый проект. Попробуйте поиграть с этим значением (CSS). 1. UniServerModule.CustomCSS: .customgrid .x-grid-cell-first { padding-left: 15px; } 2. UniDBVerticalGridVars.LayoutConfig.Cls = customgrid Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.