AJAX Drop Down List – Part Two

In the part one of AJAX Drop Down List tutorial, I described how to popuate a child drop down list with plain string data. In this post, I will describe how to use XML data to populate the child drop down list.

There are not gonna be many changes, so I will just address those need to be changed.

1. Client Side Page – ProductList.aspx
There is no chnage except the JavaScript code, I will address the JavaScript code change later.

2. Server Side Page – GetList.aspx
The only change is to generate a XML string, instead of a plain string. Here is the code (in VB.NET):

Private Sub Page_Load(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles MyBase.Load

‘Put user code to initialize the page here

If Not IsPostBack() Then

Dim company As String
company= Request.QueryString(“objectValue”)
Dim ds As NewdsProductList
Dim appHandler As New ApplicationHandler
ds = appHandler.GetProductList(company)
Dim sb As New System.Text.StringBuilder
Dim dr As New dsProductList.ProductRow
Dim index As Integer

‘Generate a XML string with a StringBuilder
‘Then at the client side, the JavaScript code will split the string to populate the child drop down list.
sb.Append(“<?xml version=””1.0″” encoding=””UTF-8″”?>“)

For index = 0 To ds.Product.Rows.Count – 1

sb.AppendFormat(“<Product ProductName=””{0}”” ProductID=””{1}”” /> “, dr.ProductName, dr.ProductID)



Dim retVal As String
retVal = sb.ToString()
Response.ContentType = “text/xml”


End If

End Sub

3. Client Side Page JavaScript Code
The only change we need to make is where the string is parsed.

Here is the portion of the code:

else if (http_request.readyState == 4 && http_request.status == 200)
var cList = document.getElementById("ddlChildList");
var recordNodes = http_request.responseXML.documentElement.getElementsByTagName('Product');
if (recordNodes.length ==0)
lbl.innerHTML = "No product is available for this company.";
lbl.innerHTML = "";
var optionItem;
var itemText;
var itemValue;
for (var count=0; count<recordNodes.length; count++)
itemValue = recordNodes[count].getAttribute('ProductID');
itemText = recordNodes[count].getAttribute('ProductName');
optionItem = new Option(itemText, itemValue, false, false);
cList.options[cList.length] = optionItem;

That’s it.

Leave a Reply

Notify of
Close Bitnami banner