You can call web service from JavaScript & display result on page asynchronously from Master Content Page.
Ex:In this example we are getting charges for particulars on the basis of diffrent specification as Consignor City,Consignee City,Weight, Risk Charge, DocType etc.
ChargeCalculation.aspx
<%@ Page Language="C#" MasterPageFile="~/MainMaster.master" AutoEventWireup="true" CodeFile="ChargeCalculation.aspx.cs" Inherits="Testing_ChargeCalculation" %>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<script>
function CallService(arguments) // Send All argument in string with seprator
{
var concity=document.getElementById("ctl00_ContentPlaceHolder1_ddlConCity");
var cnecity=document.getElementById("ctl00_ContentPlaceHolder1_ddlCneCity");
var concityName=concity.options[concity.selectedIndex].text;
var cnecityName=cnecity.options[cnecity.selectedIndex].text;
var riskvalue=document.getElementById("<%=TxtConignmentValue.ClientID%>").value;
var weight= document.getElementById("<%=TxtWeight.ClientID%>").value;
var arguments =concityName+"_"+cnecityName+"_"+riskvalue+"_"+weight+"_"+"_D"+"_D";
MyPro.MyWebService.GetCharges(arguments,DisplayResult);
}
function DisplayResult(result)
{
var doc;
try
{
if (window.ActiveXObject) //this is for IE
{
doc=new ActiveXObject("Microsoft.XMLDOM");
doc.async="false";
doc.loadXML(result);
}
else // This is For Mozila
{
var parser=new DOMParser();
var doc=parser.parseFromString(result,"text/xml");
}
//The parser will parse the result content as xml tags from "result" string
//then we can get elements by tag name from XML. Like following.
document.getElementById("<%=LblRiskCharge.ClientID%>")
.innerHTML=doc.getElementsByTagName("HeavyCharge")[0].childNodes[0].nodeValue;
document.getElementById("<%=LblHeavyCharge.ClientID%>")
.innerHTML=doc.getElementsByTagName("RiskCharge")[0].childNodes[0].nodeValue;
document.getElementById("<%=LblService.ClientID%>")
.innerHTML=doc.getElementsByTagName("ServiceCharge")[0].childNodes[0].nodeValue;
document.getElementById("<%=LblFuel.ClientID %>")
.innerHTML=doc.getElementsByTagName("FuelCharge")[0].childNodes[0].nodeValue;
document.getElementById("<%=LblTotalCharge.ClientID %>")
.innerHTML=doc.getElementsByTagName("TotalAmount")[0].childNodes[0].nodeValue;
}
<\script>
<asp:Content>
MyWebService.asmx.cs //code file of web service
namespace MyPro
{
[WebService(Namespace = "MyPro")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService] // This should be placed for script access
public class MyWebService : System.Web.Services.WebService
{
[WebMethod]
[ScriptMethod]
public string GetCharges(string parameters)
{
char[] spilter = new char[] { '_' };
string[] args = parameters.Split(spilter);
string conCity=args[0]; // Send
string cneCity=args[1]; // arguments
string riskvalue = args[2]; // as u need
string weight = args[3]; // But remember
string docType = args[4]; // indexes of
string region = args[5]; // Items
Rates rs = new Rates();// Class for Rate Calculation & Charges Methods
DataSet DsCharges=rs.GetCharges(conCity,cneCity,riskvalue,weight,docType,region)
return DsCharges.GetXml();
}
}
Tuesday, June 16, 2009
Subscribe to:
Posts (Atom)
