
Wednesday, 30 March 2005
Custom Control to Wrap Forms on an ASP.NET Page
Problem: Can not paste a simple HTML form into an ASP.NET page.
Cause: The ASP.NET Page class gets confused and starts loosing track of server controls (which leads to the oh-so-helpful "Object reference not set to an instance of an object." message).
My solution is a custom user control that you a use to wrap the form. The control will parse the form, removing all the stuff that confuses the ASP.NET Page class. It also converts each submit button into a server control and attaches event handlers that convert clicks into the appropriate action.
The entire control is in a single file. All of the documentation is in the control source as comments. To use this control follow these steps:
- Copy FormWrapper.ascx to your site.
- Place this line at the top of the page:
<%@ Register TagPrefix="solutions" TagName="FormWrapper" Src="FormWrapper.ascx" %>
- Add these tags where you want the new sub-form to appear on the page:
<solutions:FormWrapper id="FW" runat="server">
</solutions:FormWrapper>
- Copy and paste the form you want to add between the FormWrapper tags like this:
<solutions:FormWrapper id="FW" runat="server">
<form name="someform" action=http://www.company.com/register.asp method="post">
<!-- Some fancy form your newsletter host sent -->
</form>
</solutions:FormWrapper>
If you form came with a <script> block, you can paste that inside the wrapper as well. There are a couple of options you can add to the FormWrapper tag. Normally the form will be submitted from the server hosting the page. If you would prefer to have the form submitted from the client, add SubmitFrom="Client". The source comments describe some caveats to both techniques.
If your form includes some validation (in the guise of an onsubmit event handler), this is normally stripped off so that the rest of the page can be submitted even if your sub-form is not filled in. However, if your sub-form is the only important thing on the page and must be validated, add EnableOnsubmit="True". This will attach the onsubmit handler to the ASP.NET Page.
Example: The newsletter signup form on this site is a complete <form> that is wrapped in FormWrapper.
FormWrapper.zip (4.52 KB)

Tuesday, 29 March 2005
New Shipper Release Candidates
I had hoped to release the final versions of Shipper 1.1, Shipper Service for StoreFront 1.1, and Shipper Service for BVC2004 1.1 today. Instead there are new release candidates. I did this for 2 reasons. First, some significant new code was added to compress the data that is sent back and forth between Shipper and Shipper Service. This was originally planned for version 1.2, but it turned out to be a more important issue than I anticipated.
The fact is that many merchants have not been processing shipments in StoreFront...probably because it is normally so tedious. When they first install Shipper they have 100's or even 1000's of pending shipments. That turns into a lot of data which turns into a long send/receive...so long that some first time Shipper merchants are getting timeouts. Not good.
The latest Shipper 1.1 and matching Shipper Service compress the send/receive data up to 90%. That should go a long way toward making the first experience with Shipper much more pleasant and useful. Note that Shipper 1.1 also includes a Quick Ship! feature that can be used to mark all those old shipments as shipped.
The second reason for delaying the final release of Shipper Service is to coordinate with the impending release of BVC2004.6. I want to make sure that Shipper Service continues to work with BVC2004 so that no one is trapped with a broken release.
Shipper Service for StoreFront 1.1 RC4
Version 1.1.0.3 (RC4) of Shipper Service for StoreFront is now available. This pre-release candidate expires on April 30, 2005.
-
NEW: Send/Receive data is compressed up to 90%. Requires Shipper 1.1 RC5 or higher.
-
CHANGE: Updated help.
-
FIXED: UPS Next Day Air is recorded as UPS Next Day Air Early A.M.
-
FIXED: UPS send date is not parsed correctly.
download | purchase | help | release notes
Shipper Service for BVC2004 1.1 RC4
Version 1.1.0.3 (RC4) of Shipper Service for BVC2004 is now available. This pre-release candidate expires on April 30, 2005.
download | purchase | help | release notes
Shipper 1.1 RC5
Shipper 1.1 RC5 (1.1.0.5) is now available. This pre-release candidate expires on April 30, 2005.
- NEW: PDF version of Shipper Tutorial for printing.
- NEW: Send/Receive data compressed up to 90%. Requires Shipper Service 1.1 RC4 or higher.
- CHANGE: Store name is validated as it is entered to prevent invalid characters.
- CHANGE: Extended characters, and { and ~ are not allowed in store name.
- CHANGE: List of shippers is disabled while retrieving ship-from address to prevent multiple requests from being queued.
- CHANGE: Default online/offline mode changed to offline.
- CHANGE: Shipper.mdb schema updated to record ShipmentCarrier and OrderNumber in outbox.
- FIXED: Leading or trailing blanks in service username or password cause service access to fail.
- FIXED: Leading or trailing blanks in service serial number cause service access to fail.
- FIXED: Tutorial not found when Shipper is launched.
- FIXED: Voided shipment carrier and order number are blank.
- FIXED: Constraint exception on next refresh after a send/receive that includes only shipment voids.
- FIXED: Format exception if store name includes a curly brace "{".
download | help | release notes

Wednesday, 23 March 2005
New color scheme
Until today, the color scheme for this site was based on Moveable Radio: heat by Bryan Bell (actually, the version of Moveable Radio: heat that comes with DasBlog). I thought it was rather radical until I found this, which was tantalizingly close. So close, I decided to try it on...
Contacts
Structured Solutions is located in the "silicon forest" just outside of Portland, Oregon in the United States of America. Please address your correspondence to:
Structured Solutions
15021 NW Wendy Lane
Portland, OR 97229
USA
If you prefer email, the best all-around email address to use is:
Partners
A hearty thank you to all our vendors and partners that make this business possible...
E-Commerce Platforms
Components
Hosts
App design and development