Repopulate our DataGrid
This is all brought about in a more or less similar manner as storing the values. The RePopulateCheckBoxes()method listed below starts of by setting up an ArrayList based on the
values stored in Session State. Next, as before, it loops through the
current page DataGrids items, and if Session State contains any
matching values that happen to be on the current page, it'll then
proceed and set the appropriate checkbox to true.
Sub RePopulateCheckBoxes ()
CheckedItems = New ArrayList
CheckedItems = Session ("CheckedItems")
If Not IsNothing(CheckedItems) Then
For Each dgItem in MyDataGrid.Items
ChkBxIndex = MyDataGrid.DataKeys(dgItem.ItemIndex)
If CheckedItems.Contains(ChkBxIndex) Then
CheckBox = CType(dgItem.FindControl("DeleteThis"), CheckBox)
CheckBox.Checked = True
End If
Next
End If
Results = CheckedItems.ToArray(GetType(String))
deletedIds = String.Join(",", Results)
End Sub
Additionally, the aforesaid method at the end also copies the
ArrayList into a new array from which the values get cleanly
concatenated with commas, so they can be batch deleted.
The rest of our code is pretty undemanding. The remaining functions are all self explanatory. For one, you have the SortOrder() function,
which properly sorts the order based on the values passed to it, in
turn sorting the DataGrid accordingly. The other notable function is
the DeleteAllIds() method that deletes all the values
that were setup in the method listed above. Moreover, since one might
uncheck any checkbox on the given current page, then proceed to delete
their selections, we need to support this action by including the GetCheckBoxValues() and RePopulateCheckBoxes() methods, whereby it'll regrab the values and update Session State accordingly, so the final delete reflect this change.
Finally, you have the ClearDataGrid() method, that willclear all Session State values and rebinds our DataGrid from the top. And that all she wrote.