网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

webservice结合dthml的简单例子(2)

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 14/02/27

【编者按】网学网ASP.net频道为大家收集整理了“webservice结合dthml的简单例子(2)“提供大家参考,希望对大家有所帮助!


        }
     }
     
     //保存按钮的点击方法
     //现在的做法是调用webservice依次保存每条纪录,
     //然后通过回调函数OnSaveRecords(result)将已保存的纪录清除
     function OnSave()
     {
        if(oTblMain.rows.length < 2)
        {
          alert("没有记录可保存!") ;
          return false ;
        }
        
        for(var i = 1 ; i < oTblMain.rows.length  && bSaveStatus ; i ++)
        {
            var strItemName ;
            var strDemoName  ;
            var intDemoAmount ;

            strItemName = oTblMain.rows[i].cells[1].innerText ;

            var arr = oTblMain.rows[i].cells[2].innerText.split("-") ;
            if(arr.length != 2)
            {
                alert("每条纪录都要填") ;
                return false ;
            }
            else
            {
                strDemoName = arr[0] ;
                intDemoAmount = arr[1] ;
                //alert(strItemName + "," + strDemoName + "," + intDemoAmount) ;
                window.status = "" ;
                iCallId = service.myService.callService(OnSaveRecords , "SaveRecord" , strItemName , strDemoName , parseInt(intDemoAmount , 10)) ;
                window.status = "正在保存第" + i + "条纪录……" ;
        }
            
            
        }
        
        
     }
     
     //保存纪录
     function OnSaveRecords(result)
     {
        if(result.error)
        {
            alert(result.errorDetail.code + ":" + result.errorDetail.string ) ;
            bSaveStatus = false ;
            return ;
        }
        else
        {
           
            if(result.value)
            {
                window.status = window.status + "成功!" ;
                oTblMain.deleteRow(1) ;
            }
            else
            {
                bSaveStatus = false ;
                alert("由于未知原因保存失败!") ;
                window.status = window.status + "失败!终止保存!" ;
            }
        }

     }
     
     
    </script>
    <BODY onload="OnLoad();">
        <div id="service" style="behavior:url(webservice.htc)">
            <xml id="bbXML"></xml>
            <xml id="bbXSL" src="item1.xsl"></xml>
            <br>
            <h3 align="center">WebService示例</h3>
            <br>
            <br>
            <table width="600" align="center" id="tblMain" bgcolor="#000000" cellspacing="1">
                <tr bgcolor="#ffffff">
                    <td width="50">编号</td>
                    <td width="200">Item</td>
                    <td>Demo</td>
                </tr>
            </table>
            <p align="center">
                <input type="button" value="增加" onclick="OnAdd()">   <input type="button" value="删除" onclick="OnDelete()">
                  <input type="button" value="保存" onclick="OnSave()">
            </p>
    </BODY>
</HTML>

上面这个htm是通过微软的webservice.htc来对webservice进行soap访问,他封装得很好,我们要做的工作就是把传递回来的xml进行解析,我是用xsl进行解析的,下面是这个文件内容

文件 item1.xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsl:output method="html"/>
    <xsl:template match="/">
        <xsl:apply-templates select="//soap:Body"/>
    </xsl:template>
    <xsl:template match="soap:Body">
        <xsl:apply-templates select="*[local-name() = ''GetItemsResponse'']/*[local-name() = ''GetItemsResult'']"/>
    </xsl:template>
    <xsl:template match="*[local-name() = ''GetItemsResult'']">
        <html>
            <body>
                <table border="1">
                    <tr>
                        <th>name</th>
                        <th>value</th>
                    </tr>
                    <xsl:for-each select="*[local-name() = ''anyType'' and @xsi:type=''Item'']">
                        <xsl:apply-templates select="."/>
                    </xsl:for-each>
                </table>
            </body>
        </html>
    </xsl:template>
    <xsl:template match="*[local-name() = ''anyType'' and @xsi:type=''Item'']">
        <tr>
            <td style="cursor:hand" onclick="OnItemSelected(this);">
                <xsl:text disable-output-escaping="yes">&nbsp;</xsl:text>
                <xsl:value-of select="*[local-name() = ''Name'']"/>
            </td>
            <td>
                <xsl:text disable-output-escaping="yes">&nbsp;</xsl:text>
                <xsl:value-of select="*[local-name() = ''Value'']"/>
            </td>
        </tr>
    </xsl:template>
</xsl:stylesheet>

上述例子很简单,主要难度在于那些dhtml。但如果你把它扩展一下,可以完成很多以前必须用activex才能实现的功能。

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号