Click here to Skip to main content
12,512,548 members (34,426 online)
Click here to Skip to main content
Add your own
alternative version

Stats

215.8K views
3.5K downloads
73 bookmarked
Posted

Custom editable Datagrid with paging and sorting

, 3 Dec 2003
Rate this:
Please Sign up or sign in to vote.
How to create a grid control for easy editing

Introduction

This article shows you how to create a custom DataGrid with paging, alternate sorting, and is also completely editable

Details

When I was developing some asp.net pages, I lost a lot of time with Datagrids. The code here is to made that work more simple. Only drag the control to the page, complete some properties, point to the methods that controls the updating, deleting and you have a complete editable grid.

[ToolboxData("<{0}:editableElphGrid runat="\""server\">
    </{0}:editableElphGrid>")]
//ParseChildren allow to work with templates inside the custom datagrid
[ParseChildren(true)]
public class editableElphGrid : System.Web.UI.WebControls.DataGrid
{
    /// <span class="code-SummaryComment"><summary>
</span>

Well, now add the control on a page, and then you must fill the fields .

DataKeyField: That is the key field of the table, the unique identifier of a row. I put because I use that on Database actions, like delete a specific row etc.

And on the tab of Events :- GetData, CancelData, EditData and DeleteData.

Finally you should have something like this.

On the aspx page:

<cc1:editableElphGrid id="EditableElphGrid1" runat="server" 
    DataKeyField="intId"></cc1:editableElphGrid>

On the code behind

protected elphControls.editableElphGrid EditableElphGrid1;
   
private void InitializeComponent()
{    
 this.EditableElphGrid1.DeleteData += 
   new elphControls.editableElphGrid.eliminarDatos(this.del);
 this.EditableElphGrid1.GetData += 
   new elphControls.editableElphGrid.obtenerDatos(this.obt);
this.EditableElphGrid1.EditData += 
   new elphControls.editableElphGrid.editarDatos(this.edit);
 this.EditableElphGrid1.UpdateData += 
   new elphControls.editableElphGrid.actualizarDatos(this.act);
 this.EditableElphGrid1.CancelData += 
   new elphControls.editableElphGrid.cancelarDatos(this.cncl);
 this.Load += new System.EventHandler(this.Page_Load);
}
private System.Data.DataTable obt()
{
OleDbConnection conn=new OleDbConnection(
    "Provider=Microsoft.Jet.OLEDB.4.0;Data source=E:\\bdProves.mdb");
 OleDbDataAdapter adapter=new OleDbDataAdapter("select * from tabla",conn);
 adapter.SelectCommand.CommandType=CommandType.Text;
 conn.Open();
 DataSet ds=new DataSet();
 adapter.Fill(ds,"aa");
 conn.Close();
 conn.Dispose();
 return ds.Tables["aa"];
}
private void edit(int dataKey, 
    System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
//here the logic asociated with edit comand... if you have
}
private void del(int dataKey, 
    System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
 //here the logic asociated with delete comand
}
private void cncl(int dataKey, 
    System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
 //here the logic asociated with Cancel comand
}
private void act(int dataKey, 
    System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
 //here the logic asociated with update comand
}

Update

Changed the session to save the sorting params for a viewstate, now you can have two grids on the same page. Also Changed the declaration of the first sorting field, now this isn't necessary. Thanks to Zanoza.

Conclusion

I think that this grid is a good base to customize a datagrid. Hope it could be useful. All comments about this are welcomed.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

Share

About the Author


You may also be interested in...

Pro
Pro

Comments and Discussions

 
Questionevents firing twice Pin
mojkurs9-Feb-06 15:39
membermojkurs9-Feb-06 15:39 
AnswerRe: events firing twice Pin
mojkurs9-Feb-06 16:54
membermojkurs9-Feb-06 16:54 
GeneralGetting text from edit/update Pin
bkerr1-Nov-05 19:25
memberbkerr1-Nov-05 19:25 
GeneralDataGrid : column width Pin
thanchu2-Oct-05 18:22
memberthanchu2-Oct-05 18:22 
GeneralProgramming Style Tips Pin
Pinhead_Me18-Oct-04 9:36
memberPinhead_Me18-Oct-04 9:36 
GeneralRe: Programming Style Tips Pin
Klom Dark23-Jan-06 4:43
memberKlom Dark23-Jan-06 4:43 
GeneralRe: Programming Style Tips Pin
Pinhead_Me23-Jan-06 7:39
memberPinhead_Me23-Jan-06 7:39 
I apologize. That was wrong of me to say such a thing. I'll be the first to admit when I am wrong, didn't really think that I was being a Hypocrite at the time of that writing, and you know you are correct. I must have been speaking out of frustration that day. Thanks for pointing that out.


To the Author of the Code: Thanks for taking the time to post and explain the use of a DataGrid. Sorry if you were at all offended by my comments.

-Pin Head

GeneralRe: Programming Style Tips Pin
mtone28-Jan-07 4:32
membermtone28-Jan-07 4:32 
Generallogic asociated with update comand Pin
Hamish Ahern18-Oct-04 1:31
memberHamish Ahern18-Oct-04 1:31 
QuestionCan you write VB.NET? Pin
Hamish Ahern18-Oct-04 0:40
memberHamish Ahern18-Oct-04 0:40 
GeneralHola Pin
Fernando Finelli21-Jul-04 7:04
memberFernando Finelli21-Jul-04 7:04 
GeneralControl LoadViewState Pin
Rruedi3-Jul-04 6:11
memberRruedi3-Jul-04 6:11 
General@ Register Pin
fsdkjfskl17-Mar-04 4:02
memberfsdkjfskl17-Mar-04 4:02 
QuestionHow to use the source file? Pin
deny0123-Jan-04 3:46
memberdeny0123-Jan-04 3:46 
QuestionHow do I had non autogenerate columns ? Pin
Ernest Bariq25-Dec-03 22:20
memberErnest Bariq25-Dec-03 22:20 
AnswerRe: How do I had non autogenerate columns ? Pin
Ernest Bariq30-Dec-03 5:51
memberErnest Bariq30-Dec-03 5:51 
GeneralError Pin
GeorgeMar10-Dec-03 5:31
memberGeorgeMar10-Dec-03 5:31 
GeneralRe: Error Pin
Elph10-Dec-03 10:33
memberElph10-Dec-03 10:33 
GeneralRe: Error Pin
GeorgeMar10-Dec-03 23:14
memberGeorgeMar10-Dec-03 23:14 
GeneralRe: Error Pin
Anonymous11-Dec-03 1:26
sussAnonymous11-Dec-03 1:26 
GeneralRe: Error Pin
GeorgeMar11-Dec-03 3:05
memberGeorgeMar11-Dec-03 3:05 
GeneralProblem with first loading Pin
Zanoza5-Dec-03 4:27
memberZanoza5-Dec-03 4:27 
GeneralRe: Problem with first loading Pin
Elph5-Dec-03 7:56
memberElph5-Dec-03 7:56 
GeneralThow! Spanish! Pin
Jonathan de Halleux4-Dec-03 20:15
memberJonathan de Halleux4-Dec-03 20:15 
GeneralRe: Thow! Spanish! Pin
Elph4-Dec-03 20:33
memberElph4-Dec-03 20:33 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.160929.1 | Last Updated 4 Dec 2003
Article Copyright 2003 by Elph
Everything else Copyright © CodeProject, 1999-2016
Layout: fixed | fluid