Hantera kolumnfilter server händelser

Hantering av serverhändelse vid tillämpning av kolumnfilter

Det finns två huvudsakliga händelser som beskrivs nedan.

  1. OnBeforeColumnFilter: Utlöses innan filtret ska tillämpas på en kolumn.
  2. OnAfterColumnFilter: Utlöses efter att filtret har tillämpats på en kolumn.

Här är ASPX-skriptet för komponenten Aspose.Cells.GridWeb för att lägga till och tilldela de tidigare nämnda händelserna.

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>

Dessa händelser kan användas för att få användbar information om filtreringsprocessen, som kolumnindex och värde på vilket filter ska tillämpas. Följande är en snutt som visar användningen av händelsen OnBeforeColumnFilter för att hämta kolumnindex och värde som användaren har valt på GridWeb UI för filtrering.

// 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;
}

Å andra sidan, om kravet är att få antalet filtrerade rader efter att filtret har tillämpats kan du använda händelsen OnAfterColumnFilter som visas nedan.

// 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;
}