Bind a dropdown according to data in another drop down using traditional AJAX
Code for client side written within script:
function CallTemplate()
{
//alert(document.getElementById('cmbAssignTo_cmbSimple').value);
var objDd= document.getElementById('ddlmenu')
var strValue = objDd.options[objDd.selectedIndex].value;
//Create XMLHttpRequest object:'request'
CreateXmlHttpRequestObject();
//Build the required Query string
var sPass=1;
var retrieveParam = 'id='+ strValue;
var retrieveURL = "AJAX.aspx";
var url = retrieveURL + '?' + retrieveParam;
request.open('GET',url,true);
request.onreadystatechange = CheckTemplate;
request.send(null);
}
function CheckTemplate()
{
document.getElementById("ddlsubmenu").innerText="";
if(request.readyState == 4 || request.readyState == 'complete')
{
if(request.status == 200)
{
var opt=document.createElement("option");
opt.value="-1";
opt.text="----select subcategory---";
document.getElementById("ddlsubmenu").add(opt);
var DdVisitTemp = document.getElementById("ddlmenu");
var rootFile = request.responseXML.documentElement;
var Id = rootFile.getElementsByTagName('Id');
var Name = rootFile.getElementsByTagName('Name');
if(Id.length > 0 || Name.length > 0)
{
for(var i=0;i
{
if(Name.length > 0)
{
var opt=document.createElement("option");
opt.value=Id[i].text;
opt.text=Name[i].text;
document.getElementById("ddlsubmenu").add(opt);
}
}
}
}// inner IF
} // Outer IF
}
function CreateXmlHttpRequestObject()
{
try
{
request = new XMLHttpRequest();
}
catch(nething)
{
try
{
request = new ActiveXObject('Msxml2.XMLHTTP');
}
catch(othr)
{
try
{
request = new ActiveXObject('Microsoft.XMLHTTP');
}
catch(err)
{
request = false;
}
}
}
if(!request)
{
alert("Error initializing XMLHttpRequest object!");
}
}
code for ajax page i.e ajax.aspx
private void Page_Load(object sender, System.EventArgs e)
{
string id=string.Empty ;
System.Text.StringBuilder strXml;
string passedValue = Request.QueryString["id"];
string strFill=" select PK_PRIMARY_KEY,TITLE_SUBMENU from SUBJECT_SUBMENU where FK_SUBJECTMENU_ID = '" + id + "' ";
DataTable dttemp= con.connectiondatatable(strFill);
int j=dttemp.Rows.Count;
strXml = new System.Text.StringBuilder ();
strXml.Append("");
if(j > 0)
{
for(int i=0 ; i
{
strXml.Append(""+dttemp.Rows[i]["PK_PRIMARY_KEY"].ToString() +" ");
strXml.Append(" "+dttemp.Rows[i]["TITLE_SUBMENU"].ToString()+" ");
}
}
else
{
strXml.Insert(-1,"");
}
strXml.Append("");
XmlDocument xTemplate = new XmlDocument();
xTemplate.LoadXml(strXml.ToString());
Response.ContentType = "text/xml";
Response.CacheControl = "No-cache";
xTemplate.Save(Response.OutputStream);
// Put user code to initialize the page here
}
There are two tables
1.SUBJECTMENU
2.SUBJECT_SUBMENU
Relation between them
SUBJECT_SUBMENU.FK_SUBJECTMENU_ID=SUBJECTMENU.PK_SUBJECTMENU_ID
Step 1:
create two tables must have relationship between them like above.
step 2:
Bind 1st dropdown on page load.
step 3:
Write code for client side as well as ajax page.
When u change 1st dropdown ,2nd dropdown will change.
How to create a ajax page:
Example:
<%@ Page language="c#" Codebehind="AJAX.aspx.cs" AutoEventWireup="false" Inherits="KnowledgeSharing.AJAX" %>except this one
Comments
Post a Comment