5,276,406 members and growing! (15,945 online)
Email Password   helpLost your password?
Database » Database » General     Advanced

A db grid control using ASP

By Bjornar Henden

A grid control for ASP written in JavaScript to display recordsets.
Windows, IIS, ASP, Dev

Posted: 12 May 2001
Updated: 27 Aug 2001
Views: 251,633
Announcements
Want a new Job?



Search    
Advanced Search
Sitemap
47 votes for this Article.
Popularity: 7.70 Rating: 4.60 out of 5
0 votes, 0.0%
1
0 votes, 0.0%
2
1 vote, 3.3%
3
10 votes, 33.3%
4
19 votes, 63.3%
5

Sample Image - bgrid1.gif

Introduction

A grid control for editing databases on the web. It is written for ASP with JavaScript, but should be fully usable from VBScript as well. With just a few lines of code, you will, with this control, be able to edit your data.

Features

  • Write protect fields you don't want the user to edit.
  • ID fields can look up values in other recordsets.
  • Sort by any column that supports sorting.
  • Paging with custom page size.
  • Automatically detects primary key, but can also be manually overridden.
  • Get default values for new records with custom select statement.

Usage

To use the grid you create it by calling new BGrid(rs) from JavaScript, or you can alternately create it by calling CreateGrid(rs) which also works from VBScript. The parameter in both methods is the recordset you want the grid to display. This recordset should allow moving both back and forward, so I usually set CursorLocation to adUseClient on my connection.

I'm too lazy to manually declare all those ad-constants, so at the top of config.asa I add the following. This means that all ADO constants are available, and is required for the demo to work without a lot of work.

<!-- METADATA NAME="Microsoft ActiveX Data Objects 2.5 Library"
              TYPE="TypeLib" UUID="{00000205-0000-0010-8000-00AA006D2EA4}" -->

A simple example

Using the grid requires only a few lines of code:

<%@Language="JavaScript%">
<!--#include file=misc.asp-->
<!--#include file=b.dropdown.asp-->
<!--#include file=b.grid.asp-->

<form method=post>
<%
var Conn = CreateConnection(); // CreateConnection is defined in misc.asp
var rs = Server.CreateObject("ADODB.Recordset");
rs.Open("EmployeeTerritories",Conn,adOpenStatic,adLockOptimistic,adCmdTable);

var Grid = new BGrid(rs);
Grid.Process(); // Process must be called to handle saving and such stuff
Grid.Display(); // Display does just that
Grid = null;

rs.Close();
rs = null;
Conn.Close();
Conn = null;
%>
</form>

Since the EmployeeTerritories table has a field called TerritoryID which is a foreign key to the Territories table, we can tell the grid to look for a value to display from this table instead of displaying an ID that means nothing:

var rsTerritories = Conn.Execute("Territories");
Grid.SetLookup("TerritoryID",rsTerritories,"TerritoryID","TerritoryDescription");

When a record is being edited it will look similar to this picture:

Editing

Functions

  • CreateGrid(recordset)
  • Grid.Process()
  • Grid.Display()
  • Grid.SetDefault(field,sql)
  • Grid.ProtectFields(fieldlist)
  • Grid.SetLookup(fkfield,recordset,pkfield,displayfield)
  • Grid.SetOption(option,value)

Some of these are explained above, but there are a few I haven't mentioned yet:

Grid.SetOption(option,value)

option can be one of the following: "debug", "pagesize", "pk", "truncate". value varies depending on the option. "debug" requires a boolean, "pagesize" requires a number, "pk" is a comma separated list of fields which is the manually overridden primary key, and "truncate" needs a number to know how many characters that should be displayed of every field in the grid. Some examples:

Grid.SetOption("debug",true);           // default is false

Grid.SetOption("pagesize",20);          // default is 10

Grid.SetOption("pk","field1,field2");   // if the primary key can't be found

Grid.SetOption("truncate",30);          // Don't display more than 30 characters

Grid.SetDefault(field,sql)

field is the name of the field in the recordset, and sql is the sql-statement used to find the default value for new records in this grid.

Grid.SetDefault("UserID","select max(UserID)+1 from TheTable"); // NOT the way to do it,

                                                                // but it shows the usage.

Grid.SetDefault("HireDate","select getdate()");                 // This was better perhaps.

Grid.SetDefault("MinAge","select 18");                          // A constant.

Grid.ProtectFields(fieldlist)

Protects the fields in the fieldlist from editing. Example:

Grid.ProtectFields("UserID,HireDate");  // UserID and HireDate can't be edited.

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

About the Author

Bjornar Henden



Occupation: Web Developer
Location: Norway Norway

Other popular Database articles:

Article Top
Sign Up to vote for this article
You must Sign In to use this message board.
FAQ FAQ Noise ToleranceSearch Search Messages 
 Layout  Per page   
 Msgs 1 to 25 of 94 (Total in Forum: 94) (Refresh)FirstPrevNext
Subject  Author Date 
General.net is bettermembershakirhussain21:30 18 Nov '07  
QuestionErrormemberRITIK DODHIWALA21:32 29 Apr '07  
Questionvisual web developper [modified]memberMoukala0:59 15 Jun '06  
GeneralInclude the datetime var into DispalyNamememberellaz7:16 2 May '06  
GeneralRe: Include the datetime var into DispalyNamememberellaz11:30 2 May '06  
QuestionWorks great, but cannot save changesmemberazharmahmood19:13 22 Oct '05  
AnswerRe: Works great, but cannot save changesmemberturist6911:17 5 Feb '07  
QuestionPlease give me a way for display pictures which store in DB Access 2003 by "OLE object"?membertuyenhnp17:44 25 Sep '05  
GeneraldbGridmemberKuy Tan6:41 1 Sep '05  
GeneralCan't edit using SQL SERVERmemberTracer_II3:10 9 Aug '05  
QuestionRe: Can't edit using SQL SERVERmemberazharmahmood3:16 23 Oct '05  
AnswerRe: Can't edit using SQL SERVERsussAnonymous23:29 24 Oct '05  
QuestionRe: Can't edit using SQL SERVERmemberGiliDazzle21:32 14 Mar '07  
QuestionRe: Can't edit using SQL SERVERmemberozbarney14:45 18 Nov '05  
QuestionRe: Can't edit using SQL SERVERmemberemmpergul15:49 14 Nov '06  
AnswerRe: Can't edit using SQL SERVERmemberWill662:02 12 Jun '07  
GeneralGood job..does this work with non-IE browsersmemberrra3034:30 7 Aug '05  
GeneralASP ChartmemberMajd Ghiba22:05 21 Mar '05  
GeneralRe: ASP Chartmembermintyboy692:24 4 May '05  
GeneralRe: ASP ChartmemberGreen Eyes2:28 4 May '05  
GeneralNice Jobmemberjhidey8:30 23 Dec '04  
GeneralIts Urgent - Asp with Sql Grid codesmembernanpal763:05 18 Nov '04  
GeneralNot Saving ..please helpmemberGiliDazzle22:16 14 Mar '07  
GeneraladUseClient is undefinedmemberHubertDude8:09 12 Nov '04  
GeneralRe: adUseClient is undefinedmemberSeaWeedSolutions6:45 23 Nov '04  

General General    News News    Question Question    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

PermaLink | Privacy | Terms of Use
Last Updated: 27 Aug 2001
Editor: Chris Maunder
Copyright 2001 by Bjornar Henden
Everything else Copyright © CodeProject, 1999-2008
Web11 | Advertise on the Code Project