日期:2012-09-27  浏览次数:20420 次

    前段事件在网上看到一个基于web的财务系统,它是通过activex实现的,实际上如果用webservice结合dhtml,那完全可以抛开activex。下面是个简单的例子。
首先是webservice , 很简单,我就不详细说明了,看注释就可以了。

文件 study.asmx.cs

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Web;
using System.Web.Services;
using System.Xml.Serialization ;

namespace StudyXML
{
    /// <summary>
    /// <br>一个webservice的例子</br>
    /// <br>Author:Bigeagle@163.net</br>
    /// <br>Date:  2001/12/21</br>
    /// <br>History: 2001//12/21完成</br>
    /// </summary>
    /// <remarks>
    /// 这个webservice实现的功能很简单
    /// 主要功能有两个,一个是取得预定义的Item数组
    /// 另一个是保存Record类型的纪录
    /// </remarks>
    public class Study : System.Web.Services.WebService
    {
        
        private ArrayList m_arrItems ;

        private ArrayList m_arrReocrds ;

        public Study()
        {
            //CODEGEN: This call is required by the ASP.NET Web Services Designer
            InitializeComponent();
            this.m_arrReocrds = new ArrayList() ;

            this.m_arrItems = new ArrayList() ;

            //增加一些实验数据
            for(int i = 0 ; i < 100 ; i ++)
            {
                this.m_arrItems.Add(new Item("ItemName" + i.ToString()
                    , "ItemValue" + (i + 1).ToString())) ;
            }

            
        }

        /// <summary>
        ///
        /// </summary>
        /// <param name="a_strItemName">Item name</param>
        /// <returns>Item对象</returns>
        private Item GetItem(string a_strItemName)
        {
            //throw(new Exception(Server.UrlDecode(a_strItemName))) ;
            for(int i = 0 ; i < this.m_arrItems.Count ; i ++)
            {
                Item item = (Item)this.m_arrItems[i] ;
         &n