==================htm========================================
<%@ Page Language="VB" AutoEventWireup="true" CodeFile="CH6_DemoForm015.aspx.vb" Inherits="CH6_DemoForm015" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>如何使用自定义类型数据作运算</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<%-- 引用 Web 服务 --%>
<asp:ServiceReference Path="WS_Restaurant.asmx" />
</Services>
<Scripts>
<%-- 引用 .JS 文件 --%>
<asp:ScriptReference Path="~/JS/WS_Restaurant.js" />
</Scripts>
</asp:ScriptManager>
<table border="3" align="center">
<tr>
<td colspan="2" style="text-align: center">
<a target="_blank" href="http://liminzhang.cnblogs.com/">
<img border="0" src="Images/CH6_DemoForm015_Banner.jpg" alt="前往立民讲堂"/></a>
</td>
</tr>
<tr>
<td colspan="2" style="font-size: 15pt; background-color: #FFFFCC; font-weight: bold;
color: black; text-align: center;">
请点餐:(请个别单点)
</td>
</tr>
<tr class="tr1">
<td style="text-align: right; width: 319px;">
开胃菜(Appetizer):</td>
<td style="width: 277px">
<select id="Select1" style="width: 248px">
<option selected="selected" value=""></option>
<option value="30">鲜虾芦笋</option>
</select>
</td>
</tr>
<tr class="tr2">
<td style="text-align: right; width: 319px;" bgcolor="#ffcccc">
面包(Bread):</td>
<td style="width: 277px" bgcolor="#ffcccc">
<select id="Select2" style="width: 248px">
<option selected="selected" value=""></option>
<option value="50">西式面包</option>
</select>
</td>
</tr>
<tr class="tr1">
<td style="text-align: right; width: 319px;">
前菜(Antipasto):</td>
<td style="width: 277px">
<select id="Select3" style="width: 248px">
<option selected="selected" value=""></option>
<option value="100">焗烤蘑菇</option>
</select>
</td>
</tr>
<tr class="tr2">
<td style="text-align: right; width: 319px;" bgcolor="#ffcccc">
沙拉(Salad):</td>
<td style="width: 277px" bgcolor="#ffcccc">
<select id="Select4" style="width: 248px">
<option selected="selected" value=""></option>
<option value="60">萝美生菜沙拉</option>
<option value="70">鲜虾洋芋沙拉</option>
<option value="100">时鲜水果沙拉</option>
</select>
</td>
</tr>
<tr class="tr1">
<td style="text-align: right; width: 319px;">
汤(Soup):</td>
<td style="width: 277px">
<select id="Select5" style="width: 248px">
<option selected="selected" value=""></option>
<option value="80">意式海鲜清汤</option>
<option value="100">清炖牛筋汤</option>
<option value="120">杏鲍菇南瓜浓汤</option>
<option value="90">鸡肉鲜菇清汤</option>
</select>
</td>
</tr>
<tr class="tr2">
<td style="text-align: right; width: 319px;" bgcolor="#ffcccc">
主餐(Main):</td>
<td style="width: 277px" bgcolor="#ffcccc">
<select id="Select6" style="width: 248px">
<option selected="selected" value=""></option>
<option value="250">意式香串牛肉</option>
<option value="380">酥烤纽约克</option>
<option value="280">原块牛排</option>
<option value="250">法式烤鸡</option>
<option value="300">法式鸭胸</option>
<option value="380">大峡谷香烤猪肋排</option>
<option value="300">欧式烤猪脚</option>
<option value="400">美式双拼</option>
<option value="250">法式鱼排</option>
</select>
</td>
</tr>
<tr class="tr1">
<td style="text-align: right; width: 319px;">
甜点(Desert):</td>
<td style="width: 277px">
<select id="Select7" style="width: 248px">
<option selected="selected" value=""></option>
<option value="50">巧克力袋冰淇淋</option>
<option value="50">香榭奶酪</option>
<option value="60">焦糖栗香慕思</option>
<option value="60">法式玫瑰晶冻</option>
</select>
</td>
</tr>
<tr class="tr2">
<td style="text-align: right; width: 319px;" bgcolor="#ffcccc">
饮料(Soft Drinks):</td>
<td style="width: 277px" bgcolor="#ffcccc">
<select id="Select8" style="width: 248px">
<option selected="selected" value=""></option>
<option value="35">意式巧酥冰咖啡</option>
<option value="40">冰沁香柚汁</option>
<option value="50">晶钻蔓越莓</option>
<option value="25">香桔柠檬蜜</option>
<option value="60">热水果茶</option>
<option value="30">热咖啡</option>
</select>
</td>
</tr>
<tr>
<td colspan="2">
<%-- 这是‘结帐’按钮 --%>
<input id="btnSettle" style="font-size: 15pt" type="button" value="结帐" οnclick="btnSettle_onclick();" />
</td>
</tr>
<tr>
<td colspan="2">
<%-- 此一 <div> 标签项目用来显示 Web 服务方法所返回的结果 --%>
<div id="Content" style="font-size: 15pt; background-color: #FFFFCC;">
</div>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
=============================================vb=============================
Option Strict On
Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Web.Script.Services
<WebService(Namespace:="http://tempuri.org/")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
<ScriptService()> _
Public Class WS_Restaurant
Inherits System.Web.Services.WebService
<WebMethod()> _
Public Function TotalDish(ByVal OrderDish As Orders) As Orders
If OrderDish IsNot Nothing Then
OrderDish.Price = _
OrderDish.Antipasto + OrderDish.Appetizer + OrderDish.Bread + OrderDish.Dessert + _
OrderDish.MainDish + OrderDish.Salad + OrderDish.SoftDrink + OrderDish.Soup
Return OrderDish
Else
Throw New System.Exception("型别错误!")
End If
End Function
End Class
Public Class Orders
Dim _Appetizer As Integer
Dim _Bread As Integer
Dim _Antipasto As Integer
Dim _Salad As Integer
Dim _Soup As Integer
Dim _MainDish As Integer
Dim _Dessert As Integer
Dim _SoftDrink As Integer
Dim _Price As Integer
Dim _WelcomeDay As String = DateTime.Now.ToString
' 自订属性。
Public Property Appetizer() As Integer
Get
Return _Appetizer
End Get
Set(ByVal value As Integer)
_Appetizer = value
End Set
End Property
' 自订属性。
Public Property Bread() As Integer
Get
Return _Bread
End Get
Set(ByVal value As Integer)
_Bread = value
End Set
End Property
' 自订属性。
Public Property Antipasto() As Integer
Get
Return _Antipasto
End Get
Set(ByVal value As Integer)
_Antipasto = value
End Set
End Property
' 自订属性。
Public Property Salad() As Integer
Get
Return _Salad
End Get
Set(ByVal value As Integer)
_Salad = value
End Set
End Property
' 自订属性。
Public Property Soup() As Integer
Get
Return _Soup
End Get
Set(ByVal value As Integer)
_Soup = value
End Set
End Property
' 自订属性。
Public Property MainDish() As Integer
Get
Return _MainDish
End Get
Set(ByVal value As Integer)
_MainDish = value
End Set
End Property
' 自订属性。
Public Property Dessert() As Integer
Get
Return _Dessert
End Get
Set(ByVal value As Integer)
_Dessert = value
End Set
End Property
' 自订属性。
Public Property SoftDrink() As Integer
Get
Return _SoftDrink
End Get
Set(ByVal value As Integer)
_SoftDrink = value
End Set
End Property
' 自订属性。
Public Property Price() As Integer
Get
Return _Price
End Get
Set(ByVal value As Integer)
_Price = value
End Set
End Property
' 自订属性。
Public Property WelcomeDay() As String
Get
Return _WelcomeDay
End Get
Set(ByVal value As String)
_WelcomeDay = value
End Set
End Property
End Class
===================================JS=============================
// WS_Restaurant.js
function btnSettle_onclick()
{
var s1 = $get('Select1');
var s2 = $get('Select2');
var s3 = $get('Select3');
var s4 = $get('Select4');
var s5 = $get('Select5');
var s6 = $get('Select6');
var s7 = $get('Select7');
var s8 = $get('Select8');
// 创建一个服务器订单对象。
var NewOrder = new Orders();
if(s1.selectedIndex > 0)
{
NewOrder.Appetizer = s1[s1.selectedIndex].value;
}
else
{
alert("请选择开胃菜!");
return;
}
if(s2.selectedIndex > 0)
{
NewOrder.Bread = s2[s2.selectedIndex].value;
}
else
{
alert("请选择面包!");
return;
}
if(s3.selectedIndex > 0)
{
NewOrder.Antipasto = s3[s3.selectedIndex].value;
}
else
{
alert("请选择前菜!");
return;
}
if(s4.selectedIndex > 0)
{
NewOrder.Salad = s4[s4.selectedIndex].value;
}
else
{
alert("请选择色拉!");
return;
}
if(s5.selectedIndex > 0)
{
NewOrder.Soup = s5[s5.selectedIndex].value;
}
else
{
alert("请选择汤!");
return;
}
if(s6.selectedIndex > 0)
{
NewOrder.MainDish = s6[s6.selectedIndex].value;
}
else
{
alert("请选择主餐!");
return;
}
if(s7.selectedIndex > 0)
{
NewOrder.Dessert = s7[s7.selectedIndex].value;
}
else
{
alert("请选择甜点!");
return;
}
if(s8.selectedIndex > 0)
{
NewOrder.SoftDrink = s8[s8.selectedIndex].value;
}
else
{
alert("请选择饮料!");
return;
}
// 调用 Web 服务 WS_Restaurant 的 TotalDish 方法并将 Orders 对象传递给它。
requestRestaurant = WS_Restaurant.TotalDish(
NewOrder, onComplete, OnError);
}
// 成功调用 Web 服务方法之后就会执行此成功回调函数以便显示出 Web 服务方法所返回的结果。
function onComplete(result)
{
$get('Content').innerHTML =
"您点的餐点总价为:<b>" + result.Price + "</b> 元" + "<br />" +
"来店日期为:<b>" + result.WelcomeDay + "</b>";
}
// 如果调用 Web 服务方法发生错误,就会执行此失败回调函数以便显示出相关错误信息。
function OnError(error)
{
alert(
"操作发生严重问题!错误信息是:" + error.get_message() +
"/n堆栈跟踪结果是:" + error.get_stackTrace() +
"/n状态码是:" + error.get_statusCode() +
"/n异常类型是:" + error.get_exceptionType() +
"/超时状态是:" + error.get_timedOut());
}
if (typeof(Sys) !== "undefined") Sys.Application.notifyScriptLoaded();