Goodies To Go Newsletter #337

By Vince Barnes

WEBINAR: On-demand webcast

How to Boost Database Development Productivity on Linux, Docker, and Kubernetes with Microsoft SQL Server 2017 REGISTER >

Goodies to Go (tm)
May 9, 2005 -- Newsletter # 33
This newsletter is part of the network.


Featured this week:
*   Goodies Thoughts - Short Thoughts
*   Q & A Goodies
*   News Goodies
*   Feedback Goodies
*   Windows Tech Goodie of the Week 
*   And Remember This...

Short Thoughts

Folks, I am very sorry, but this week some highly unusual circumstances have put major constraints on my time.  I regret that your newsletter this week will be somewhat abbreviated.  Back to normal next week, though -- I promise!
Thanks for Reading!

- Vince Barnes
Q & A Goodies
Questions are taken from submissions to our Community
Mentors. You can ask a Mentor a question by going to
Q. I have some stand alone HTML program that reside in multiple laptop computers located in my client's fleet of vehicles.  I am attempting to find a program or script that will act as a hit counter so I can analyze the traffic and identify the pages or sections  visited or more importantly, those that are not.
A. You might find that cookies would provide the feedback you are looking for. Take a look at this HTMLGoodies page:

Q. I would like to be able to create clickable buttons at the top of my page to link to different places further down the page.
A. Add this link code to your button image:
<.a href="#link1"><img src="yourbuttonname.gif"><./a>
Then where you want it to link to, add this anchor code:
<.a name="link1"><./a>
When you click the button it will jump down on the same page to the anchor.
Q. How do I move stuff where I want it on my website? I put the html in the scripts area but when I go to my site everything is in the top left corner.
A. By default, text and images will be placed at the top and to the left. There are tags for positioning, and stylesheets give more control. Sometimes tables are used for precise layout. I suspect tables would be the most useful thing for you right now, so have a look at the tables tutorials.

Q. How do I make animated GIFs?.
A. Basically, you make each frame as a separate image, and your graphics application combines them into one file. Imageready can do this. Shareware sites may have Microsoft GIF Animator, which I've used and works adequately. There will be other applications for animating GIFs. Probably shareware sites like Nonags and Tucows are your best bet. If you're willing to learn Flash or Livemotion, they make animations which are smoother and smaller. 
Q.  I'm making a form that will be used by users to apply for a job. I want to make sure that the form will not be submitted if they type text into the "phone number" text box. All my attempts have failed, Could you give me an idea of what is going on?
var x = 0
function checkdata() {
  if ( (document.job.dobday.value.indexOf("a") == -1) ||
       (document.job.dobday.value.indexOf("b") == -1) ||
       (document.job.dobday.value.indexOf("c") == -1) ||
       (document.job.dobday.value.indexOf("d") == -1) ||
       (document.job.dobday.value.indexOf("e") == -1) ||
       (document.job.dobday.value.indexOf("f") == -1) ||
       (document.job.dobday.value.indexOf("g") == -1) ||
       (document.job.dobday.value.indexOf("h") == -1) ||
       (document.job.dobday.value.indexOf("i") == -1) ||
       (document.job.dobday.value.indexOf("j") == -1) ||
       (document.job.dobday.value.indexOf("k") == -1) ||
       (document.job.dobday.value.indexOf("l") == -1) ||
       (document.job.dobday.value.indexOf("m") == -1) ||
       (document.job.dobday.value.indexOf("n") == -1) ||
       (document.job.dobday.value.indexOf("o") == -1) ||
       (document.job.dobday.value.indexOf("p") == -1) ||
       (document.job.dobday.value.indexOf("q") == -1) ||
       (document.job.dobday.value.indexOf("r") == -1) ||
       (document.job.dobday.value.indexOf("s") == -1) ||
       (document.job.dobday.value.indexOf("t") == -1) ||
       (document.job.dobday.value.indexOf("u") == -1) ||
       (document.job.dobday.value.indexOf("v") == -1) ||
       (document.job.dobday.value.indexOf("w") == -1) ||
       (document.job.dobday.value.indexOf("x") == -1) ||
       (document.job.dobday.value.indexOf("y") == -1) ||
       (document.job.dobday.value.indexOf("z") == -1) ||
       (document.job.dobday.value.indexOf("!") == -1) ||
       (document.job.dobday.value.indexOf("#") == -1) ||
       (document.job.dobday.value.indexOf("$") == -1) ||
       (document.job.dobday.value.indexOf("%") == -1) ||
       (document.job.dobday.value.indexOf("^") == -1) ||
       (document.job.dobday.value.indexOf("&") == -1) ||
       (document.job.dobday.value.indexOf("*") == -1) ||
       (document.job.dobday.value.indexOf("(") == -1) ||
       (document.job.dobday.value.indexOf(")") == -1) ||
       (document.job.dobday.value.indexOf("-") == -1) ||
       (document.job.dobday.value.indexOf("_") == -1) ||
       (document.job.dobday.value.indexOf("+") == -1) ||
       (document.job.dobday.value.indexOf("=") == -1) ||
       (document.job.dobday.value.indexOf("{") == -1) ||
       (document.job.dobday.value.indexOf("}") == -1) ||
       (document.job.dobday.value.indexOf("[") == -1) ||
       (document.job.dobday.value.indexOf("]") == -1) ||
       (document.job.dobday.value.indexOf("@") == -1) ||
       (document.job.dobday.value.indexOf("~") == -1) ||
       (document.job.dobday.value.indexOf("<.") == -1) ||
       (document.job.dobday.value.indexOf(">") == -1) ||
       (document.job.dobday.value.indexOf("?") == -1) ||
       (document.job.dobday.value.indexOf(".") == -1) ||
       (document.job.dobday.value.indexOf("/") == -1) ||
       (document.job.dobday.value.indexOf("|") == -1)){x = 1}
if (x = 1){
alert("no letters are allowed in the phone text box");
return false;}
A.(1) Take a look at the HTMLGoodies Javascript Primer #29 - Putting It All Together: Form Field Validation located at
The example includes the validation of a numeric zip code that should be easy enough to adapt to a phone number. It will also shorten your script considerably.
A.(2) You could also use the method isNaN (is-Not-a-Number) to insure that only numbers are entered.  It goes something like this:
  {alert("Numbers only please!")}
News Goodies
IBM Urges Employees to Blog With Care
[May 16, 2005] Big Blue lays down rules of the road for employees engaging in blogging.
Read the article:

Level 3 Plans Software Spin-Off
[May 16, 2005] The enterprise software and services group readies an IPO.
Read the article:

Seeing a 'Ghost' in The SOA Machine
[May 16, 2005] Actional rolls new agent that makes management opportunities for non-XML or SOAP systems visible.
Read the article:

Hello? Where's My Revenue?
[May 13, 2005] VoIP and the IP services to follow are sending cash-strapped states to Capitol Hill with hats in hand. Who will pay?
Read the article:

U.S., China Clash Again Over Tech
[May 13, 2005] Washington claims Beijing's government software procurement rules are stacked against American companies.
Read the article:

Sun, Microsoft Get Closer
[May 13, 2005] UPDATED: Sun and Microsoft continue to rest their differences, teaming to make Windows work with Java.
Read the article:

The Dark Side of The Force Made Me Do It
[May 13, 2005] The debut of 'Star Wars III' marks the end of an era for geeks everywhere. It will also launch an 'out of office' wave. Call it Star Wars-induced absenteeism.
Read the article:

Trend Micro Wins Injunction
[May 13, 2005] Fortinet can sell in the U.S. no more.
Read the article:

Microsoft Preps Thin Client For XP
[May 13, 2005] UPDATED: Redmond wants to turn obsolete PCs into thin clients running on Windows XP.
Read the article:

Microsoft to Offer Subscription Security Service
[May 13, 2005] All-in-one PC health care service promises to cure all the usual ills of PC usage, and compete with anti-virus vendors.
Read the article:

Feedback Goodies
Did you ever wish your newsletter was an easy two way communications medium?  Ploof! It now is!
If you would like to comment on the newsletter or expand/improve on something you have seen in here, you can now send your input to:
We already receive a lot of email every day.  This address helps us sort out those relating specifically to this newsletter from all the rest.  When you send email to this address it may wind up being included in this section of the newsletter, to be shared with your fellow readers.  Please don't send your questions to this address.  They should be sent to our mentors: see
Thanks for all your feedback!

Windows Tech Goodie of the Week 
XML to DataGrid ASP.NET Sample Code
We've already shown you a couple ways to display XML file data on a web page using an XSL stylesheet, but sometimes it's useful to take it a step further and actually use the XML as a true data source. This sample shows you how to use an XML file as the data source of an ASP.NET DataGrid control.

*** AND ***

Retrieving SharePoint Site Information in an ASP.NET Web Application
In this article, Gayan Peiris examines using the SharePoint Object Model to access SharePoint site information from an ASP.NET web application. It should be of particular interest to SharePoint administrators who can use the included code as a starting point for development of their own web-based SharePoint administration application.

*** AND ***

Bubbling Events Up the Control Hierarchy
The DataGrid control can easily be configured to add a column of buttons. When a Button is clicked, it's Command event is raised. But how does the DataGrid know when this event has been raised so that it can raise it's ItemCommand event in response? The answer is through a process referred to as event bubbling. In this article we'll look at how, precisely, event bubbling works in ASP.NET.

And Remember This ...
On this day in...

Make a Comment

Loading Comments...

  • Web Development Newsletter Signup

    Invalid email
    You have successfuly registered to our newsletter.
Thanks for your registration, follow us on our social networks to keep up-to-date