Jump to content

События изменения столбцов


x11

Recommended Posts

А зачем тогда добавлять свое событие "_columnhide", если уже есть стандартное "columnhide"?

Можно просто ловить "columnhide"?

 

Link to comment
Share on other sites

8 minutes ago, x11 said:

А зачем тогда добавлять свое событие "_columnhide", если уже есть стандартное "columnhide"?

Можно просто ловить "columnhide"?

Да что-то я совсем запутался с этими hide'ами.

Да Вы просто можете ловить, даже не используя ClientEvents...

 

Link to comment
Share on other sites

В общем, достаточно только этого

  if (EventName = 'columnhide') or (EventName = 'columnshow') then
    actStoreGridParamsToDB.Visible := True;

 

Кстати, обратил внимание, что ExtJS-события, связанные со столбцами, есть без "s" и есть с "s", что не очень удобно - вызывает путаницу и нужно лишний раз тратить время на проверку: правильно ли ты его написал.

 

Screenshot_1.jpg

Link to comment
Share on other sites

  • 7 months later...

А как быть с TUniDBTreeGrid?

Из событий изменений столбцов есть только OnColumnResize.

Было бы здорово, если бы разработчики добавили соответствующие события в обе сетки.

Ну или какое-нибудь одно событие типа OnColumnChange, а в параметрах был бы тип события: hide, show, resize, move.

Кстати, у сетки есть событие columnschanged, т.е. его легко можно встроить и в uniGUI:

Quote

Fired after the columns change in any way, when a column has been hidden or shown, or when a column is added to or removed from this header container.

К сожалению, нет resize и move :(

 

Link to comment
Share on other sites

Подскажите, как в JS-событии columnschanged() компоненты TUniDBTreeGrid получить column.INDEX?

ct - это, как я понял header container

https://docs.sencha.com/extjs/7.0.0-CE/modern/Ext.grid.HeaderContainer.html#method-getColumns

function columnschanged(ct, eOpts)
{
  ajaxRequest(this, '_columnschanged', ['colIndx=' + сt.columns.????])
}

 

Link to comment
Share on other sites

Вы про columnschanged() ? Или про что?

Для любых, которые касаются изменения колонок: перемещение, скрытие, показ, изменение ширины.

Целю все та же - уловить момент, когда нужно сохранить настройки колонок сетки.

Например, при фильтрации ничего сохранять не нужно, т.е. событие фильтрации не интересует.

Или я не понял вопроса?

Link to comment
Share on other sites

On 4/25/2020 at 8:50 AM, x11 said:

В общем, достаточно только этого

получается, почти одинаковые сетки (uniDBGrid и uniDBTreeGrid) работают по разному, я о том, что этот код для дерева uniDBTreeGrid работать не будет

 

if (EventName = 'columnhide') or (EventName = 'columnshow') then

 

Link to comment
Share on other sites

Ну да, я так и сделал - во все события добавил один и тот же код

ajaxRequest(this, '_columnchange', ['colIndx=' + column.dataIndex])

 

и ловлю его в бэкэнде

procedure TfrdParentRefTree.TreeGridAjaxEvent(Sender: TComponent; EventName: string; Params: TUniStrings);
begin
  inherited;
// см js-события ExtEvent у сетки
  if EventName = '_columnchange' then
    actStoreGridParamsToDB.Visible := True;// показать кнопку и меню "Сохранить параметры таблицы"
end;

 

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...