Behandeln von Serverseitigen Spaltenfilterereignissen

Behandlung von Serverseitigen Ereignissen bei Anwendung des Spaltenfilters

Es gibt zwei Hauptereignisse, wie nachstehend beschrieben.

  1. OnBeforeColumnFilter: Wird vor der Anwendung des Filters auf eine Spalte ausgelöst.
  2. OnAfterColumnFilter: Wird ausgelöst, nachdem der Filter auf eine Spalte angewendet wurde.

Hier ist das ASPX-Skript der Aspose.Cells.GridWeb-Komponente, um die oben genannten Ereignisse hinzuzufügen und zuzuweisen.

For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
<acw:GridWeb ID="GridWeb1" runat="server"
OnBeforeColumnFilter="GridWeb1_BeforeColumnFilter"
OnAfterColumnFilter="GridWeb1_AfterColumnFilter">
</acw:GridWeb>

Diese Ereignisse können verwendet werden, um nützliche Informationen zum Filterprozess zu erhalten, wie beispielsweise den Spaltenindex und den Wert, auf den der Filter angewendet werden soll. Im Folgenden finden Sie ein Codebeispiel, das die Verwendung des OnBeforeColumnFilter-Ereignisses zum Abrufen des Spaltenindex und des Werts, den der Benutzer in der GridWeb-Benutzeroberfläche für das Filtern ausgewählt hat, demonstriert.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
protected void GridWeb1_BeforeColumnFilter(object sender, RowColumnEventArgs e)
{
// Display the column index and filter applied
string msg = "[Column Index]: " + (e.Num) + ", [Filter Value]: " + e.Argument;
Label1.Text = msg;
}

Andererseits, wenn die Anforderung darin besteht, die Anzahl der gefilterten Zeilen nach Anwendung des Filters zu erhalten, können Sie das OnAfterColumnFilter-Ereignis wie unten gezeigt verwenden.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
protected void GridWeb1_AfterColumnFilter(object sender, RowColumnEventArgs e)
{
string hidden = "";
int headrow = 0;
int maxrow = GridWeb1.WorkSheets[0].Cells.MaxRow;
int count = 0;
// Iterate all worksheet rows to find out filtered rows
for (int i = headrow + 1; i <= maxrow; i++)
{
if (GridWeb1.WorkSheets[0].Cells.Rows[i].Hidden)
{
hidden += "-" + (i + 1);
}
else
{
count++;
}
}
// Display hidden rows and visible rows count
string msg = "[Hidden Rows]: " + hidden + " [Visible Rows]: " + count;
Label1.Text = msg;
}