Jump to content

UniDBVerticalGrid - CheckBox в заголовке поля (TUniDBGridColumn)


EOR

Recommended Posts

Здравствуйте.

Существует две реализации одного проекта "Desktop" версия и "Web" версия.

Для реализации функционала работы с вводом параметров запроса в базу данных в Web версии проекта необходимо отобразить CheckBox в заголовке поля (TUniDBGridColumn).

image.png.74b08afc1a635fce50ef9c9dc57bb0f3.png

Например вот так это реализовано в "Desktop" версии проекта (используется TcxDBVerticalGrid - DevExpress VCL):

image.png.bbb3aceb0afc66e0e87884789a7669b1.png

ВОПРОСЫ:

1. Есть ли возможность реализовать такое в UniDBVerticalGrid? Обходные пути через ClientEvents -> ExtEvents?

2. Как обработать изменение состояния CheckBox (OnChange)?

 

Заранее спасибо.

Link to comment
Share on other sites

Создаю динамически 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 не работают.

image.png.182550e5ee961183325ecf34abf12554.pngimage.png.6d10471fc8cfec7fd23dadd684334151.png 

ВОПРОСЫ:

1. Как отобразить CheckBox'ы поверх грида???

2. Как найти смещение для попадания CheckBox'а в нужную строку?

3. Как сделать отступ в заголовке uniDBGridColumn чтобы освободить место для CheckBox'а?

Спасибо заранее.

 

UPD: Пока увеличил отступ от левого края у грида. CheckBox'ы видно, но выглядит это очень коряво :) Вопросы, заданные выше, все еще актуальны.

image.png.0538ccbe163cd18f21fc9fd5d1170aa4.png

 

UPD2: Пробую изменить z-index для UniDBVerticalGrid:

UniSession.AddJS('Ext.onReady(function(){'+UniDBVerticalGrid.JSName+'.getEl().setStyle(''z-index'','+IntToStr(99999)+')});');

Получаю ошибку:

image.png.e9d51ee1a578535730a21333bb38874e.png

UniGUI 1.90.0.1526

Что делать???

 

Link to comment
Share on other sites

Вопрос с отображением CheckBox'ов поверх грида решен.

Добавляем обработчик в UniDBVerticalGrid / ClientEvent / Extevent / OnAfterrender:

function OnAfterrender(sender)
{ 
  sender.getEl().setStyle('z-index','0');
}

image.png?_uid=17948412&hid=1.1.3&ids=172544160723656410&name=image.png&yandex_class=yandex_inline_content_320.mail:17948412.E3453857:21784794569396401420898323418_1.1.3_172544160723656410

Остался последний вопрос: 

Как сделать отступ текста в заголовке uniDBGridColumn чтобы убрать наложение текста и CheckBox'ов?

Спасибо заранее.

Link to comment
Share on other sites

14 hours ago, EOR said:

Как сделать отступ текста в заголовке uniDBGridColumn чтобы убрать наложение текста и CheckBox'ов?

Здравствуйте,

Можете прикрепить тестовый случай?

Link to comment
Share on other sites

1 hour ago, EOR said:

Прикрепляю тестовый проект.

Попробуйте поиграть с этим значением (CSS).

1. UniServerModule.CustomCSS:

.customgrid .x-grid-cell-first {
    padding-left: 15px;
}

2. UniDBVerticalGridVars.LayoutConfig.Cls = customgrid

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...