protected void grvLicenseData_Sorting(object sender, GridViewSortEventArgs e) { // Take current page number. int currentPageNumber = LicensesDataBinder.GetCurrentPageNumber(rprPages); // Take index column to sort. TableCell x1 = ((GridView)sender).HeaderRow.Cells.OfType <TableCell>().Where(t => t.Controls.OfType <LinkButton>().Any(l => l.Text == e.SortExpression)).First(); var columnIndex = ((GridView)sender).HeaderRow.Cells.GetCellIndex(x1); // Save the sorted column index. ViewState["indexSortedColumn"] = columnIndex; // From a drope down list take a number of rows to display in a gridview. int rows = int.Parse(ddlRowsPerPage.SelectedItem.Value); // Choose a sorting direction (if true then ASC if false then DESC). licenseDataBinder.LicensesDataBind(wsClient, user, currentPageNumber, columnIndex, !(bool)ViewState["sortDirection"], rows); ViewState["sortDirection"] = !(bool)ViewState["sortDirection"]; }
protected void Page_Load(object sender, EventArgs e) { // Create data binder licenseDataBinder = new LicensesDataBinder(gvLicenseData, rprPages, ddlRowsPerPage); user = new User() { UserEmail = User.Identity.Name.ToString(), UserAccessNumber = (Guid)Session["loggedUsersAccessNumber"] }; if (!Page.IsPostBack) { // Display a name of logged user on page. lblUserName.Text = User.Identity.Name.ToString(); // Read a first portion of data and display it in a gridview. licenseDataBinder.LicensesDataBind(wsClient, user, 0, 0, true, 10); // Save an index of sorted column. ViewState["indexSortedColumn"] = 0; // Save a sort direction (ASC - true, DESC - false). ViewState["sortDirection"] = true; } }