저는 Delphi Seattle에서 만든 응용 프로그램을 가지고 있으며 Delphi Tokyo로 마이그레이션했습니다. 그러나 ListView 내 검색이 더 이상 제대로 작동하지 않습니다. 처음 사용할 때 제대로 작동하고 레코드를 필터링하고 편집합니다. 데이터를 datasnap 서버로 보내고 모든 레코드를 다시 가져와 listview를 새로 고칩니다. 그러나 다시 검색하려고하면 더 이상 레코드를 찾지 않지만 목록보기를 탐색하면 레코드를 찾을 수 있습니다.ListView 데이터 서버에서 데이터를 가져온 후 필터가 작동하지 않습니다.
분명히 데이터를 다시로드 할 때 화면에 나타나지 않는 모든 레코드가 필터링되지 않습니다. 수동으로 레코드로 이동하여 검색을 수행하면 작동합니다.
내 코드의 DataSnap에서 데이터를 검색 및 목록보기에 표시합니다 :
DadosSocio := F_ClientModule.ServerMethods1Client.GetSocio(0);
Assert(TFDJSONDataSetsReader.GetListCount(DadosSocio) = 1);
mem_Socios.Close;
mem_Socios.AppendData(TFDJSONDataSetsReader.GetListValue(DadosSocio, 0));
mem_Socios.Open;
lvSocios.ScrollTo(0);
lvSocios.ScrollViewPos := 0;
내가 필터 청소 코드를 사용
for I := 0 to lvSocios.Controls.Count-1 do
Begin
if lvSocios.Controls[I].ClassType = TSearchBox then
begin
TSearchBox(lvSocios.Controls[I]).Text := '';
end;
End;
나는 필터를 청소하는이 코드를 사용하려고를, 그러나 오류를 반환합니다 Argument out of Range
:
lvSocios.Items.Filter := nil;