js WEB服务传递自定义类

本文介绍了一个使用Web服务进行餐饮订单总价计算的应用实例。通过客户端页面选择菜品后,利用Web服务计算总价并展示结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

==================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();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值