Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 Development Tools
 ASP.NET
 Gridview Paging & Sorting does not work

Author  Topic 

OBINNA_EKE
Posting Yak Master

234 Posts

Posted - 2006-10-04 : 09:34:40
I have a Gridview with TEMPLATEFIELD, Sorting & Paging won't work why pls help


using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Drawing;
using System.Data.SqlClient;
using System.Web.Caching;

public partial class _Default : System.Web.UI.Page
{
private string AccessConnectionString()
{
string accessDatabasePath = Server.MapPath("~/App_Data/biblio.mdb");
return String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};", accessDatabasePath);
}

private string GridViewSortDirection
{
get { return ViewState["SortDirection"] as string ?? "DESC"; }
set { ViewState["SortDirection"] = value; }
}

private string GridViewSortExpression
{
get { return ViewState["SortExpression"] as string ?? string.Empty; }
set { ViewState["SortExpression"] = value; }
}

private string GetSortDirection()
{
switch (GridViewSortDirection)
{
case "ASC":
GridViewSortDirection = "DESC";
break;
case "DESC":
GridViewSortDirection = "ASC";
break;
}
return GridViewSortDirection;
}



protected void Page_Load(object sender, EventArgs e)
{
object CacheDataSetEmployees = (DataSet)Cache.Get("CacheDataSetEmployees");
if (CacheDataSetEmployees == null)
{
Cache["SqlPubsEmployees"] = "SomeValue";
string[] keys = new String[1];
keys[0] = "SqlPubsEmployees";

DataSet ds = new DataSet();
SqlConnection MySqlConn = new SqlConnection("Data Source=SQL01;Initial Catalog=POMACS;Integrated Security=True");
SqlDataAdapter MySda = new SqlDataAdapter("SELECT top 20 SubCustomerID, SerialNo, WarrantyStart, RecordID,IsCool FROM tEquipments", MySqlConn);
MySda.Fill(ds, "Employee");
GridView1.DataSource = ds.Tables["Employee"];
CacheDependency MyDependency = new CacheDependency(null, keys);
Cache.Insert("CacheDataSetEmployees", ds, MyDependency);
MySqlConn.Close();
CacheStatus.Text = "New Version Created";
}
else
{
CacheStatus.Text = "Cached Version Used";
GridView1.DataSource = CacheDataSetEmployees;
}
GridView1.PageSize = 5;
GridView1.DataBind();
}



protected DataView SortDataTable(DataTable dataTable, bool isPageIndexChanging)
{
if (dataTable != null)
{
DataView dataView = new DataView(dataTable);
if (GridViewSortExpression != string.Empty)
{
if (isPageIndexChanging)
{
dataView.Sort = string.Format("{0} {1}", GridViewSortExpression, GridViewSortDirection);
}
else
{
dataView.Sort = string.Format("{0} {1}", GridViewSortExpression, GetSortDirection());
}
}
return dataView;
}
else
{
return new DataView();
}

}


protected void GridView1_DataBound(Object sender, System.EventArgs e)
{

String selectedValue = (String)ViewState["SelectedValue"];
if (selectedValue == null)
{
return;
}
foreach (GridViewRow row in GridView1.Rows)
{
String keyValue = GridView1.DataKeys[row.RowIndex].Value.ToString();
if (keyValue == selectedValue)
{
GridView1.SelectedIndex = row.RowIndex;
}
}
}

protected void GridView1_SelectedIndexChanged(Object sender, System.EventArgs e)
{
if (GridView1.SelectedIndex != -1)
{
ViewState["SelectedValue"] = GridView1.SelectedValue;
}
}

protected void GridView1_PageIndexChanging(Object sender, System.Web.UI.WebControls.GridViewPageEventArgs e)
{
GridView1.SelectedIndex = -1;
}

protected void GridView1_Sorting(Object sender, System.Web.UI.WebControls.GridViewSortEventArgs e)
{
GridView1.SelectedIndex = -1;
}
}


************************************************

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server"

AllowPaging="True"
AllowSorting="True"
AutoGenerateColumns="False"
CellPadding="3"

OnSorting="GridView1_Sorting"
OnSelectedIndexChanged="GridView1_SelectedIndexChanged"
OnPageIndexChanging="GridView1_PageIndexChanging"


HeaderStyle-BackColor="#707070"
HeaderStyle-ForeColor="#FFFFFF"
EditRowStyle-BackColor="Yellow"

PagerSettings-Position="TopAndBottom"
PagerSettings-Mode="NextPreviousFirstLast"
PagerSettings-FirstPageText="First"
PagerSettings-PreviousPageText="Prev"
PagerSettings-NextPageText="Next"
PagerSettings-LastPageText="Last"

PagerStyle-BackColor="#E0E0E0"
PagerStyle-HorizontalAlign="Center"
DataKeyNames="RecordID">

<Columns>


<asp:BoundField DataField="RecordID" ReadOnly="True" HeaderText="Number" ItemStyle-VerticalAlign="Top"/>

<asp:TemplateField HeaderText="Type" SortExpression="SerialNo" ItemStyle-VerticalAlign="Top">
<ItemTemplate>
<asp:Label ID="Label1" Text='<%# Eval("SerialNo") %>' Runat="Server"/>
</ItemTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText="Delete">
<ItemTemplate>
<asp:Button ID="btnDelete" Text="Delete" runat="server" OnClientClick="return confirm('Are you sureyou want to delete this record?');"
CommandName="Delete" />
</ItemTemplate>
</asp:TemplateField>

<asp:CheckBoxField DataField="IsCool" ReadOnly="True" HeaderText="Sale" ItemStyle-VerticalAlign="Top"/>

</Columns>
</asp:GridView>
<asp:Label ID="CacheStatus" Text="" runat="server" />

</div>
</form>
</body>
</html>




If it is that easy, everybody will be doing it
   

- Advertisement -