Fortgeschrittene Filterung

Setzen AllowFiltering="true" (allowFiltering in React) und die Raster-Symbolleiste erhält einen Filter-Button , der die eigenen Filter der Ansicht im FetchXML-Abfragegenerator öffnet, damit der Benutzer sie ändern kann. Alles, wonach FetchXML filtern kann, kann gebaut werden: Bedingungen auf den Spalten der Tabelle, gruppiert mit UND und ODER, verglichen mit einem Wert oder einer anderen Spalte, sowie verwandte Tabellen – unabhängig davon, ob ein zugehöriger Datensatz existiert oder eine eigene passende Bedingungen. Es werden nur die Spalten und verwandten Tabellen angeboten, die der Benutzer lesen kann, und der Server lehnt einen Filter für alles andere ab. Die Filter des Benutzers dauern, während das Raster die Ansicht anzeigt: Eine andere Ansicht beginnt von ihrer eigenen.

Filterung der Probenkontakte

Drücken Sie die Schaltfläche Filter in der Werkzeugleiste . Der Dialog öffnet sich auf den Filtern der Ansicht, die das Raster anzeigt. Alle Kontakte haben keine eigenen Kontakte – die Zeilensicherheit der Kontakttabelle speichert bereits jede Anfrage an die Kontakte, die Sie lesen können — also öffnet sie sich leer, bereit für Ihre Kontakte. Kontakte bei Unternehmen mit einer Stadt behält diejenigen, deren Unternehmen eine Stadt hat, über eine zugehörige Tabelle mit eigener Bedingung. Ändern Sie sie, drücken Sie auf Anwenden, und das Raster zeigt die Zeilen, die von der ersten Seite übereinstimmen, wobei der Filter-Button gefüllt ist, um anzuzeigen, dass die Filter Ihnen gehören. Was Sie ausprobieren sollten:

  • Öffnen Sie das Menü einer Spalte – den Pfeil in ihrem Header — und wählen Sie Filtern bei, um nur auf dieser Spalte zu filtern: einen Wert, den sie zu Beginn entspricht, oder den Tag für ein Datum. Der Header zeigt ein Filter-Symbol, während die Zeilen darauf gefiltert sind, und die Bedingung ist zusammen mit dem Rest im Filter-Dialog vorhanden. Filter löschen im selben Menü nimmt es weg.
  • Füge eine Zeile hinzu und wähle eine Spalte, einen Operator und einen Wert – Enthält einige Buchstaben eines Namens, zum Beispiel, oder ein Alter über 40. Der Werteeditor folgt der Spalte: ein Datumswähler für ein Datum, eine Liste für eine Auswahl, ein Datensatz-Picker für eine Nachschlage.
  • Füge eine Gruppe hinzu, um Bedingungen unter Match any (OR) oder Match all (AND) zu kombinieren, so tief verschachtelt, wie du möchtest.
  • Wechseln Sie eine Zeile vom By-Wert in die By-Spalte, um zwei der Kontaktspalten zu vergleichen.
  • Wähle " Verwandte Entität hinzufügen " und wähle eine Beziehung – zum Beispiel die Firma des Kontakts – und gib ihr dann eigene Bedingungen oder ändere Muss müssen auf Hat keine verwandte Zeile, um die Kontakte ohne solchen Datensatz zu behalten, oder auf Hat keine passende Zeile , um diejenigen ohne die Bedingungen zu behalten. Nur die Tabellen, die Sie lesen können, sind aufgeführt.
  • Öffnen Sie den Dialog erneut und drücken Sie auf Zurücksetzen, um zu den eigenen Filtern der Ansicht zurückzugehen, oder wählen Sie die andere Ansicht, die von ihrer eigenen beginnt.
React-Beispiel Blazor-Beispiel React TypeScript Razor

Eine Ansicht, die filtert, was der Nutzer möglicherweise nicht liest

Contacts of Active Owners behält die Kontakte, deren Benutzerkonto aktiviert ist, über eine zugehörige Tabelle – Systembenutzer –, auf die die Demo ihren Besuchern keinen Zugriff gewährt. Anstatt jeden Kontakt (der Filter ausgelassen) oder keinen anzuzeigen (die zugehörige Tabelle hat keine Zeilen), zeigt das Raster an, auf welcher Tabelle es nicht filtern kann, sodass der Entwickler den Nutzern Zugriff geben oder die Ansicht ändern kann. Öffnen Sie den Filter-Dialog und nehmen Sie den Besitzer weg, um die Zeilen zu sehen: Der Dialog zeigt die zugehörige Tabelle der Ansicht, bietet aber keine Systembenutzer zum Hinzufügen an. Ein interner Benutzer, der sich in der Demo angemeldet hat und dessen eigene Dataverse-Sicherheitsrollen entscheiden, was er liest, sieht die Zeilen.

React-Beispiel Blazor-Beispiel React TypeScript Razor