Archive for November, 2006

Referencing Server Controls in Javascript .NET 2.0

November 29, 2006

Ahhh.. the joys of getting client script and server script to communicate. I came across an issue with trying to javascript to validate some server controls (asp:textboxes, asp:checkboxes, etc) before submitting the form. Well, I assigned the ID and then in my javascript I said document.getElementById(‘ID’) and kept on getting a object reference not found error. After trying a few things out, I realized two key points:

  • Defensive programming is a must in javascript.
  • Server controls are assigned a unique ID as they are rendered by ASP.NET.

There is a ClientID and an ID for server controls. The ClientID (if you look at the client html) is what gets assigned an ID. So what you have to do is either pass the ClientID into javascript…. or use the handy dandy ClientScript.RegisterClientScriptBlock in the asp code to register the client script and pass the Control.ClientID into it. Pretty cool stuff. Enjoy!

AJAX rocks

November 28, 2006

For those who have not jumped on the AJAX bandwagon, I suggest doing so. If you’re not familiar with it, there’s plenty of documentation, samples, and videos to get you started here.

If you’re not familiar with it and want a short summary, well it’s a set of controls that allow a site to be partially updated. I thought it would be hard to use, but it is real simple. Just wrap the AJAX controls around the server controls, and blam no more full page postbacks. The tricky part is error catching… Enjoy.

Reading XML using DOM

November 28, 2006

I know what you’re thinking.. what if I wanted to only READ an XML document in .NET and have the luxury and ease of use of the DOM model but not the overhead of loading it all into memory. Well here’s your solution.

What this snippet does is reads an XML document using an XPathNavigator. It will use the DOM model without the overhead of loading the whole document into memory.

This snippet returns the full element values in between elements. For example:

root element
code element
This is a test.
/code element
/root element

GetXmlString(“/root/code”); //returns ‘This is a test.’

Enjoy.


using System.Xml;
using System.Xml.XPath;

private string m_xml_path;
private string m_xml_filename;

public string FilePath
{
get { return m_xml_path; }
set { m_xml_path = value; }
}

public string FileName
{
get { return m_xml_filename; }
set { m_xml_filename = value; }
}

private XPathNavigator CreateNavigator(string path, string filename)
{
XPathDocument doc = new XPathDocument(path + filename);
return doc.CreateNavigator();
}

public string GetXMLString(string xpath)
{
string xmlString = null;
try
{
XPathNavigator nav = CreateNavigator(m_xml_path, m_xml_filename);
XPathNodeIterator iter = nav.Select(xpath);
iter.MoveNext();
xmlString = iter.Current.Value;
iter = null;
nav = null;
}
catch (XPathException xe)
{
throw new XPathException(xe.Message);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return xmlString;
}

Test

November 28, 2006

I just thought I would test out my new blog site. Yeah.. I’m lazy… but enjoy the posts. I’ll try to update it as often as possible with lots of new coding stuff I find as I go along at the new job. Enjoy!