Jump to content

uniDBTreeGrid переход по строкам при выполнении DataSet.Locate()


Recommended Posts

Выполняю .Locate('ID', Value, []). В uniDBTreeGrid не выделяется запись, на которую перешли. Как реализовать данный момент? Это баг?

Link to post
Share on other sites
Just now, Sherzod said:

Добрый день,

Я предполагаю что нод который содержит запись, должна быть раскрыта

получилось полечить указав фокус гриду unidbgrid.SetFocus

Link to post
Share on other sites
1 minute ago, Sherzod said:

Добрый день,

Я предполагаю что нод который содержит запись, должна быть раскрыта

а как отобразить запись, если она находится не в поле видимости? При вызове locate, не срабатывает scroll

Link to post
Share on other sites
Just now, =GGG= said:

а как отобразить запись, если она находится не в поле видимости? При вызове locate, не срабатывает scroll

похожая ситуация

Но решение не помогло

 

Link to post
Share on other sites
Just now, Sherzod said:

Вы пробовали увеличить второй аргумен функции setTimeout?:


setTimeout(fn, 500) к примеру

не пробовал, сейчас проверю

Link to post
Share on other sites
6 minutes ago, Sherzod said:

Вы пробовали увеличить второй аргумен функции setTimeout?:


setTimeout(fn, 500) к примеру

не работает

Link to post
Share on other sites

Добрый день,

Попробуйте это решение:

procedure TMainForm.UniButton1Click(Sender: TObject);
begin
  if ClientDataSet1.Locate('Id' ,90, []) then
  begin
    //UniSession.AddJS('setTimeout(function(){' + UniDBTreeGrid1.JSName + '.getView().getNode('+ UniDBTreeGrid1.JSName +'.uniRow).scrollIntoView()}, 500)');
    UniDBTreeGrid1.JSInterface.JSCode('Ext.defer(function(){'#1'.ensureVisible('#1'.getSelectionModel().getSelected().getAt(0))}, 100);');
  end;
end;

 

  • Like 1
Link to post
Share on other sites
13 minutes ago, Sherzod said:

Добрый день,

Попробуйте это решение:


procedure TMainForm.UniButton1Click(Sender: TObject);
begin
  if ClientDataSet1.Locate('Id' ,90, []) then
  begin
    //UniSession.AddJS('setTimeout(function(){' + UniDBTreeGrid1.JSName + '.getView().getNode('+ UniDBTreeGrid1.JSName +'.uniRow).scrollIntoView()}, 500)');
    UniDBTreeGrid1.JSInterface.JSCode('Ext.defer(function(){'#1'.ensureVisible('#1'.getSelectionModel().getSelected().getAt(0))}, 100);');
  end;
end;

 

Спасибо большое. Заработало.   

  • Like 1
Link to post
Share on other sites
14 hours ago, Sherzod said:

Добрый день,

Попробуйте это решение:


procedure TMainForm.UniButton1Click(Sender: TObject);
begin
  if ClientDataSet1.Locate('Id' ,90, []) then
  begin
    //UniSession.AddJS('setTimeout(function(){' + UniDBTreeGrid1.JSName + '.getView().getNode('+ UniDBTreeGrid1.JSName +'.uniRow).scrollIntoView()}, 500)');
    UniDBTreeGrid1.JSInterface.JSCode('Ext.defer(function(){'#1'.ensureVisible('#1'.getSelectionModel().getSelected().getAt(0))}, 100);');
  end;
end;

 

Спасибо за оперативность!

  • Like 1
Link to post
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...