OlegTimkiv Posted January 10, 2019 Share Posted January 10, 2019 Здравствуйте! Когда в "DBTreeGrid" группировка "TreeKeyFields". Выбираю родительский узел. DataSource - не переходит на дочерний узел. Как можно реализовать переход? Link to comment Share on other sites More sharing options...
Sherzod Posted January 10, 2019 Share Posted January 10, 2019 Здравствуйте, Простите, можете уточнить Ваш вопрос? Link to comment Share on other sites More sharing options...
OlegTimkiv Posted January 10, 2019 Author Share Posted January 10, 2019 9 minutes ago, Sherzod said: Здравствуйте, Простите, можете уточнить Ваш вопрос? Когда выбрали "Bahamas", dataset должен установиться на первую запись (Nassau). Когда переходим по дочерним записям, работает нормально. Link to comment Share on other sites More sharing options...
Sherzod Posted January 10, 2019 Share Posted January 10, 2019 1 hour ago, OlegTimkiv said: Выбираю родительский узел. DataSource - не переходит на дочерний узел Думаю, что это нормальное поведение, не так ли? 1 hour ago, OlegTimkiv said: Как можно реализовать переход? Т.е., Вы хотите перейти на первый дочерний узел, который не имеет дочернего узла... ?! Link to comment Share on other sites More sharing options...
OlegTimkiv Posted January 10, 2019 Author Share Posted January 10, 2019 9 minutes ago, Sherzod said: Думаю, что это нормальное поведение, не так ли? Т.е., Вы хотите перейти на первый дочерний узел, который не имеет дочернего узла... ?! Да Link to comment Share on other sites More sharing options...
Sherzod Posted January 10, 2019 Share Posted January 10, 2019 Ok, я проанализирую и дам Вам знать. Link to comment Share on other sites More sharing options...
Sherzod Posted January 10, 2019 Share Posted January 10, 2019 Попробуйте следующий подход...: 1. UniDBTreeGrid -> ClientEvents -> ExtEvents -> function store.nodeexpand function store.nodeexpand(sender, eOpts) { var grid=this.grid, f; if (sender.data.root==true) {return}; sender.cascadeBy( function(){ if (f) return false; if (!this.get("leaf")) { this.expand(); } else { ajaxRequest(grid, "_sel", ["rec="+this.data[1]]); // Индекс Вашего ключевого поля f=true; } }); } 2. UniDBTreeGrid -> OnAjaxEvent: procedure TMainForm.UniDBTreeGrid1AjaxEvent(Sender: TComponent; EventName: string; Params: TUniStrings); begin if EventName = '_sel' then TUniDBGrid(Sender).DataSource.DataSet.Locate('KeyField....', Params.Values['rec'], []) end; Link to comment Share on other sites More sharing options...
OlegTimkiv Posted January 11, 2019 Author Share Posted January 11, 2019 17 hours ago, Sherzod said: Попробуйте следующий подход...: 1. UniDBTreeGrid -> ClientEvents -> ExtEvents -> function store.nodeexpand function store.nodeexpand(sender, eOpts) { var grid=this.grid, f; if (sender.data.root==true) {return}; sender.cascadeBy( function(){ if (f) return false; if (!this.get("leaf")) { this.expand(); } else { ajaxRequest(grid, "_sel", ["rec="+this.data[1]]); // Индекс Вашего ключевого поля f=true; } }); } 2. UniDBTreeGrid -> OnAjaxEvent: procedure TMainForm.UniDBTreeGrid1AjaxEvent(Sender: TComponent; EventName: string; Params: TUniStrings); begin if EventName = '_sel' then TUniDBGrid(Sender).DataSource.DataSet.Locate('KeyField....', Params.Values['rec'], []) end; Спасибо большое! Все работает. Link to comment Share on other sites More sharing options...
Sherzod Posted January 11, 2019 Share Posted January 11, 2019 Пожалуйста! Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now