If you have ever tried loading a large number of records into a drop down box you know that this can significantly slow down the page. A great solution is DbCombo (www.dbcombo.com). DbCombo is a managed ASP.Net control that uses a data source to auto complete and display matching results in a drop-down box without using a page post back.
The data is provided from the datasource dynamically so you can virtually have an unlimited number of results returned. This is all done without sacrificing the speed of your application. Can you imagine loading 100,000 records into a standard box? It is virtually impossible but DbCombo can easily handle this and it's literally done in a matter of seconds.
If you have visitors that use your site with older browsers there is no need to be concerned about compatibility. DbCombo gracefully degrades to HTML 3.2 on older browsers without losing any functionality. In the degraded state a post back is necessary but it all happens dynamically without having to write additional code.
DbCombo is easy enough to use that even casual developers can incorporate it into their site and it only takes a small amount of code to get it working. Here's a simple example of how to include this powerful control in your page.
First you need to create a file called DbComboServer.aspx and place it in the root of your site or application. This file is needed in order for DbCombo to work properly and is in addition to the page(s) that you are going to actually use DbCombo on. Delete anything from the file that might have been automatically generated from your editor and replace it with the following:
<%@ Page AutoEventWireup="false" Inherits="Cambro.Web.DbCombo.ServerPage" %>
Important: The above line is the only thing that should be in that file. If your editor created a code behind page for DbComboServer.aspx you can also delete that. It isn't used or needed.
Next you need to ensure that DbCombo will work on the production server. Add the following inside the tag of your web.config and replace REGISTRATION KEY with the one you were provided. If you are testing locally on your development machine you can leave this as is or leave the registration key blank.
<add key="DBComboKey" value="REGISTRATION KEY" />
If you happen to have a hosting provider that provides the license key
already, you don't need to add this to web.config. ORCS Web (www.orcsweb.com) provides dbcombo at no charge for all shared hosting accounts so it isn't necessary to add this to your web.config. The component along with the .xml file also needs to be uploaded to the /bin folder of the site. If your site is hosted with a hosting company they can place these files into your /bin folder for you.
At the top of the page where you are going to use DbCombo, you need to add
the following lines:
<%@ Register TagPrefix="DbCombo" Namespace="Cambro.Web.DbCombo"
<%@ Import Namespace="System.Data.OleDb" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Data" %>
Add the following between the <head></head> tags of the page to add a Server Method. Make sure you change the connection string and query to reflect your settings as indicated in the comments below.
Public Shared Function DbComboMethod(ByVal args As
Cambro.Web.DbCombo.ServerMethodArgs) As Object
Dim dsDbCombo As DataSet = New DataSet
'Update the below with your connection string:
Dim conn As SqlConnection = _
Dim adapter As SqlDataAdapter = New SqlDataAdapter
'Update the below with your SQL Statement
'name is the column from where you are getting the records
'comboID is the primary key needed to reference the selected value
'dbcombo is the name of the table
adapter.SelectCommand = New SqlCommand("SELECT TOP " & args.Top.ToString() & "
name AS DbComboText, comboID AS DbComboValue FROM dbcombo ORDER BY name", conn)
End Function Protected Sub DbComboOnInit(ByVal sender
As Object, ByVal e As EventArgs)
Dim ComboBox As DbCombo = CType(sender, DbCombo)
'Get the registration key from the configuration file
'The following are some of the options you can set for DbCombo
ComboBox.ShowDbComboLink = False
ComboBox.SelectSingleItemOnTab = True
ComboBox.SelectSingleItemOnEnter = True
ComboBox.TabToNextFieldOnEnter = True
ComboBox.Debug = False
Add the following to place an instance of DbCombo wherever you desire on the page: Note: Since this is an ASP.Net component it needs to be inside of the following tag.
<DBCOMBO:DBCOMBO OnInit="DbComboOnInit" id="Combo1" runat="server"></DBCOMBO:DBCOMBO>
You now have a functioning DbCombo control on your page. You should install the latest version on your development machine to test with before uploading it to a live production server. You can get the latest here: http://www.dbcombo.com/download.aspx. The download includes over 15 various demos and tutorials along with a comprehensive help file and a user manual. The manual is thorough and includes code samples in VB.Net and C# to get you up to speed quickly.
By Rick Barber, a support specialist with ORCS Web, Inc. - a company that provides managed hosting services for clients who develop and deploy their applications on Microsoft Windows platforms.