x11 Posted April 25, 2020 Author Share Posted April 25, 2020 А зачем тогда добавлять свое событие "_columnhide", если уже есть стандартное "columnhide"? Можно просто ловить "columnhide"? Quote Link to comment Share on other sites More sharing options...
Sherzod Posted April 25, 2020 Share Posted April 25, 2020 8 minutes ago, x11 said: А зачем тогда добавлять свое событие "_columnhide", если уже есть стандартное "columnhide"? Можно просто ловить "columnhide"? Да что-то я совсем запутался с этими hide'ами. Да Вы просто можете ловить, даже не используя ClientEvents... Quote Link to comment Share on other sites More sharing options...
x11 Posted April 25, 2020 Author Share Posted April 25, 2020 В общем, достаточно только этого if (EventName = 'columnhide') or (EventName = 'columnshow') then actStoreGridParamsToDB.Visible := True; Кстати, обратил внимание, что ExtJS-события, связанные со столбцами, есть без "s" и есть с "s", что не очень удобно - вызывает путаницу и нужно лишний раз тратить время на проверку: правильно ли ты его написал. Quote Link to comment Share on other sites More sharing options...
x11 Posted November 29, 2020 Author Share Posted November 29, 2020 А как быть с 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 Quote Link to comment Share on other sites More sharing options...
x11 Posted November 29, 2020 Author Share Posted November 29, 2020 Подскажите, как в 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.????]) } Quote Link to comment Share on other sites More sharing options...
Sherzod Posted November 29, 2020 Share Posted November 29, 2020 Для каких "событий", хотите использовать? Quote Link to comment Share on other sites More sharing options...
x11 Posted November 29, 2020 Author Share Posted November 29, 2020 Вы про columnschanged() ? Или про что? Для любых, которые касаются изменения колонок: перемещение, скрытие, показ, изменение ширины. Целю все та же - уловить момент, когда нужно сохранить настройки колонок сетки. Например, при фильтрации ничего сохранять не нужно, т.е. событие фильтрации не интересует. Или я не понял вопроса? Quote Link to comment Share on other sites More sharing options...
Sherzod Posted November 29, 2020 Share Posted November 29, 2020 40 minutes ago, x11 said: Вы про columnschanged() ? Да. На данный момент, Вам лучше использовать события по отдельности. Quote Link to comment Share on other sites More sharing options...
x11 Posted November 29, 2020 Author Share Posted November 29, 2020 On 4/25/2020 at 8:50 AM, x11 said: В общем, достаточно только этого получается, почти одинаковые сетки (uniDBGrid и uniDBTreeGrid) работают по разному, я о том, что этот код для дерева uniDBTreeGrid работать не будет if (EventName = 'columnhide') or (EventName = 'columnshow') then Quote Link to comment Share on other sites More sharing options...
Sherzod Posted November 29, 2020 Share Posted November 29, 2020 50 minutes ago, x11 said: if (EventName = 'columnhide') or (EventName = 'columnshow') then Нет добавленных обработчиков событий. Вы можете использовать ClientEvents на данный момент. Quote Link to comment Share on other sites More sharing options...
x11 Posted November 29, 2020 Author Share Posted November 29, 2020 Ну да, я так и сделал - во все события добавил один и тот же код 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; Quote Link to comment Share on other sites More sharing options...
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.