Friday, September 7, 2007

started

ASP.net Test Application --Data grid Sorting and filtering (C#)

Html code:

asp:TextBox ID="txtFilter" runat="server" /asp:TextBox
asp:Button ID="btnFilter" runat="server" Text="filter" OnClick="btnFilter_Click"

asp:GridView ID="Gridview1" runat="server" AutoGenerateColumns="false" AllowPaging="true" AllowSorting="true" OnSorting="Gridview1_Sorting"
columns
asp:boundfield datafield="vchEventName" headertext="EventName" sortexpression="vchEventName"
asp:boundfield datafield="datEventDate" headertext="EventDate">
asp:boundfield
asp:GridView

Page Code:
public partial class TestApplication : System.Web.UI.Page
{
static string strSortExp = "";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGrid();
}
}
public void BindGrid()
{
clsitem objevent = new clsitem();
try
{
DataTable dt = objevent.getFromQueryEvents();
DataView dv = new DataView(dt);
if (txtFilter.Text.Trim() != "")
dv.RowFilter = "vchEventName LIKE '" + txtFilter.Text.Trim() + "%'";
dv.Sort = strSortExp;
Gridview1.DataSource = dv;
Gridview1.DataBind();
}
catch (Exception ex)
{
throw ex;
}
}

protected void Gridview1_Sorting(object sender, GridViewSortEventArgs e)
{
string asd = "";
if (e.SortExpression == "vchEventName")
{
if (strSortExp == "vchEventName ASC" || strSortExp == "")
strSortExp = e.SortExpression +" DESC";
else
strSortExp = e.SortExpression + " ASC";
}
BindGrid();
}
protected void btnFilter_Click(object sender, EventArgs e)
{
BindGrid();
}
}

class code:

public DataTable getEvents()
{
try
{
SqlCommand ocmd = new SqlCommand("getEvents");
return dbGenral.GetDataTableFromStoredProcedure(ocmd);
}
catch (Exception ex)
{
throw ex;
}
}

public DataTable getFromQueryEvents()
{
try
{
string str = "select * from tblEvent";
return dbGenral.GetDataTableFromQuery(str);
}
catch(Exception ex)
{
throw ex;
}
}


Dal Code :

public static SqlConnection GetConnection()
{
SqlConnection oConnetion = new SqlConnection();
try
{
oConnetion.ConnectionString = ConfigurationManager.AppSettings["ConnectionString"].ToString();
oConnetion.Open();
return oConnetion;
}
catch (Exception ex)
{
throw ex;
}
}

public static DataTable GetDataTableFromStoredProcedure(SqlCommand oCommand)
{
DataSet oDataSet = new DataSet();
SqlConnection oConnetion = GetConnection();
oCommand.CommandType = CommandType.StoredProcedure;
oCommand.Connection = oConnetion;
SqlDataAdapter oAdapter = new SqlDataAdapter(oCommand);
try
{
oAdapter.Fill(oDataSet);
return oDataSet.Tables[0];
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (oConnetion.State == ConnectionState.Open)
oConnetion.Close();
oAdapter.Dispose();
oDataSet.Dispose();
}
}

public static DataTable GetDataTableFromQuery(string strSql)
{
DataSet oDataSet = new DataSet();
SqlConnection oConnection = GetConnection();
//SqlCommand oCommand = new SqlCommand(strSql, oConnection);
SqlDataAdapter oAdapter = new SqlDataAdapter(strSql, oConnection);
try
{
oAdapter.Fill(oDataSet);
return oDataSet.Tables[0];
}
catch (Exception Ex)
{
throw Ex;
}
finally
{
if (oConnection.State == ConnectionState.Open)
oConnection.Close();
oAdapter.Dispose();
oCommand.Dispose();
oDataSet.Dispose();
}
}