实现一个客户端的DataSet-----index.htm

客户端

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5">
<TITLE>客户端DataSet</TITLE>
<SCRIPT>
var iRowIdx = 0;

function init()
{
    services.useService("ClientDataSetDataProvider.asmx?WSDL", "clientdatasetdataprovider");
    loadData();
}
function loadData()
{
    services.clientdatasetdataprovider.callService(loadresult, "GetPubs");
}
function loadresult(result)
{
    if (result.error) {
        alert(result.errorDetail.string);
    }
    else {
        dsPubs.ReadXml(result.value);
        iRowIdx = 0;
        updateButtons();
        dataBind();
    }
}
function dataBind()
{
    var oTable = dsPubs.GetTable("authors");
    if (oTable) {
        var oRow = oTable.GetRow(iRowIdx);
        if (oRow) {
            txtAuthorID.value    = oRow.GetValue("au_id");
            txtFirstName.value    = oRow.GetValue("au_fname");
            txtLastName.value    = oRow.GetValue("au_lname");
            txtPhone.value        = oRow.GetValue("phone");
            txtAddress.value    = oRow.GetValue("address");
            txtCity.value        = oRow.GetValue("city");
            txtState.value        = oRow.GetValue("state");
            txtZip.value        = oRow.GetValue("zip");
            chkContract.checked    = (oRow.GetValue("contract") == "true") ? true : false;
            return;
        }
    }

    txtAuthorID.value    = "";
    txtFirstName.value    = "";
    txtLastName.value    = "";
    txtPhone.value        = "";
    txtAddress.value    = "";
    txtCity.value        = "";
    txtState.value        = "";
    txtZip.value        = "";
    chkContract.value    = false;
}
function text_onBlur()
{
    var sDataFld = event.srcElement.getAttribute("datafld");
    var oTable = dsPubs.GetTable("authors");
    if (oTable) {
        var oRow = oTable.GetRow(iRowIdx);
        if (oRow) {
            oRow.SetValue(sDataFld, event.srcElement.value);
        }
    }
}
function checkbox_onBlur()
{
    var sDataFld = event.srcElement.getAttribute("datafld");
    var oTable = dsPubs.GetTable("authors");
    if (oTable) {
        var oRow = oTable.GetRow(iRowIdx);
        if (oRow) {
            oRow.SetValue(sDataFld, event.srcElement.checked.toString().toLowerCase());
        }
    }
}
function updateButtons()
{
    var oTable = dsPubs.GetTable("authors");
    if (oTable) {
        var cRows = oTable.GetRowCount();
        if (iRowIdx == 0 || cRows == 0) {
            btnFirst.disabled = true;
            btnPrev.disabled = true;
        }
        else {
            btnFirst.disabled = false;
            btnPrev.disabled = false;
        }
        
        if (iRowIdx < cRows-1) {
            btnNext.disabled = false;
            btnLast.disabled = false;
        }
        else {
            btnNext.disabled = true;
            btnLast.disabled = true;
        }
        
        if (cRows > 0) {
            btnDelete.disabled = false;
        }
        else {
            btnDelete.disabled = true;
        }
    }
    else {
        btnFirst.disabled = true;
        btnPrev.disabled = true;
        btnNext.disabled = true;
        btnLast.disabled = true;
        btnAdd.disabled = true;
        btnDelete.disabled = true;
    }
}
function btnSave_onClick()
{
    var dsChanges = dsPubs.GetChanges();
    services.clientdatasetdataprovider.callService(saveresult, "SaveChanges", dsChanges);
}
function saveresult(result)
{
    if (result.error) {
        alert(result.errorDetail.string);
        dsPubs.RejectChanges();
    }
    else {
        alert("数据已保存!");
        dsPubs.AcceptChanges();
    }
    
    updateButtons();
    dataBind();
}
function btnFirst_onClick()
{
    iRowIdx = 0;
    updateButtons();
    dataBind();
}
function btnPrev_onClick()
{
    iRowIdx--;
    if (iRowIdx < 0) iRowIdx = 0;
    updateButtons();
    dataBind();
}
function btnNext_onClick()
{
    var oTable = dsPubs.GetTable("authors");
    if (oTable) {
        var cRows = oTable.GetRowCount();
        iRowIdx++;
        if (iRowIdx >= cRows) iRowIdx = cRows - 1;
        updateButtons();
        dataBind();
    }
}
function btnLast_onClick()
{
    var oTable = dsPubs.GetTable("authors");
    if (oTable) {
        var cRows = oTable.GetRowCount();
        iRowIdx = cRows - 1;
        updateButtons();
        dataBind();
    }
}
function btnAdd_onClick()
{
    var oTable = dsPubs.GetTable("authors");
    if (oTable) {
        var oRow = oTable.AddRow();
        iRowIdx = oTable.GetRowCount()-1;
        updateButtons();
        dataBind();
    }
}

function btnDelete_onClick()
{
    var oTable = dsPubs.GetTable("authors");
    if (oTable) {
        oTable.GetRow(iRowIdx).Delete();
        oTable = dsPubs.GetTable("authors");
        var cRows = oTable.GetRowCount();
        if (iRowIdx >= cRows) iRowIdx = cRows - 1;
        updateButtons();
        dataBind();
    }
}

function btnGetChanges_onClick()
{
    var oDoc = dsPubs.GetChanges();
    var oDiff = oDoc.selectSingleNode("//diffgr:diffgram");
    txtDebug.value = oDiff.xml;
}

function btnAcceptChanges_onClick()
{
    dsPubs.AcceptChanges();
    txtDebug.value = dsPubs.XmlData.xml;
}

function btnRejectChanges_onClick()
{
    dsPubs.RejectChanges();
    txtDebug.value = dsPubs.XmlData.xml;
}

window.attachEvent("onload", init);
</SCRIPT>
</HEAD>
<BODY>

<table cellspacing=0 cellpadding=10 border=0>
<tr>
    <td align=left valign=top>
        <b>Author ID:</b><br>
        <input id=txtAuthorID type=text datafld="au_id" onblur="text_onBlur()"><br><br>

        <b>First Name:</b><br>
        <input id="txtFirstName" type=text datafld="au_fname" onblur="text_onBlur()"><br><br>

        <b>Last Name:</b><br>
        <input id="txtLastName" type=text datafld="au_lname" onblur="text_onBlur()"><br><br>
    </td>
    <td align=left valign=top>
        <b>Phone:</b><br>
        <input id="txtPhone" type=text datafld="phone" onblur="text_onBlur()"><br><br>

        <b>Address:</b><br>
        <input id="txtAddress" type=text datafld="address" onblur="text_onBlur()"><br><br>

        <b>City:</b><br>
        <input id="txtCity" type=text datafld="city" onblur="text_onBlur()"><br><br>
    </td>
    <td align=left valign=top>
        <b>State:</b><br>
        <input id="txtState" type=text datafld="state" onblur="text_onBlur()"><br><br>

        <b>Zip:</b><br>
        <input id="txtZip" type=text datafld="zip" onblur="text_onBlur()"><br><br>

        <b>Contract:</b><input id="chkContract" type=checkbox datafld="contract" onblur="checkbox_onBlur()"><br><br>
    </td>
</tr>
</table>

<hr>

<table width="100%">
<tr>
    <td align=left valign=top>
        <input id="btnFirst" type=button value="First" onclick="btnFirst_onClick()">
        <input id="btnPrev" type=button value="Prev" onclick="btnPrev_onClick()">
        <input id="btnNext" type= button value="Next" onclick="btnNext_onClick()">
        <input id="btnLast" type= button value="Last" onclick="btnLast_onClick()">
        <input id="btnAdd" type=button value="Add" onclick="btnAdd_onClick()">
        <input id="btnDelete" type=button value="Delete" onclick="btnDelete_onClick()">
    </td>
    <td align=right valign=top>
        <input id="btnGetChanges" type=button value="GetChanges" onclick="btnGetChanges_onClick()">
        <input id="btnAcceptChanges" type=button value="AcceptChanges" onclick="btnAcceptChanges_onClick()">
        <input id="btnRejectChanges" type=button value="RejectChanges" onclick="btnRejectChanges_onClick()">
        <input id="btnSave" type=button value="Save" onclick="btnSave_onClick()">
    </td>
</tr>
</table>

<hr>

<textarea id=txtDebug rows=20 style="width:100%;">
</textarea>

<div id="services" style="behavior:url(WebService.htc)" showprogress=true></div>
<div id="dsPubs" style="behavior:url(ClientDataSet.htc)"></div>

</BODY>
</HTML>

时间: 2024-08-30 09:48:56

实现一个客户端的DataSet-----index.htm的相关文章

请问 如何实现在一个客户端处理数据后传递给下一个客户端 依次传递 直到任务完成

问题描述 请问 如何实现在一个客户端处理数据后传递给下一个客户端 依次传递 直到任务完成 一组数据 在一个客户端处理完后 再传递到下一个客户端 处理完后再传递给下一个客户端 依次类推 直到任务完结 客户端都是同一个, 这个该如何实现? 例如 有5个组 数据从一号组开始, 1号组处理完 ,就把数据传递给2号组(1号组没处理完时,2号组不会显示要处理的数据),2号处理完 再传递给3号,直到传到5号组结束. 数据是多组的 只有当前数据组处理完 才会处理下组数据. 求帮助啊, 该如何实现??? 解决方案

java-如何在项目中配置一个私钥,使每一个客户端访问我的接口都提示下载证书?

问题描述 如何在项目中配置一个私钥,使每一个客户端访问我的接口都提示下载证书? 在做一个接口,如何保证我只在项目中配置一个 私钥, 就可以使每一个访问我接口的用户提示下载证书??? 现在就是用 jdk生成的证书,但是必须客户端和服务端的密钥都有,我就是想怎么做才能在用户访问的时候才提示下载证书?? 解决方案 服务器端做一个检测,或者提供一个下载的页面 解决方案二: 服务器通讯端口做检查,如果不是标准密钥接入,或者没有密钥:跳转到密钥下载地址.

socket-c#将客户端发来的数据流实时转发给另一个客户端 服务器数据缓冲区的建立问题

问题描述 c#将客户端发来的数据流实时转发给另一个客户端 服务器数据缓冲区的建立问题 我想要实现两部安卓客户端的实时语音通讯,安卓客户端都在内网,因此需要一外网pc做数据的中转服务器,安卓语音发送端通过audiotrack录制PCM音频数据并实时发送到服务器,服务器接收数据并不断读入一个缓冲区,开启另一个线程循环读取缓冲区的数据同时将数据发送到另一个安卓客户端,问题就在于服务器的缓冲区要怎么做?怎么保证缓冲区的数据同时被两个线程操作时的有序稳定 求大神指教,假设网络良好,不考虑网络波动带来的数据

一个客户端程序,有自己的数据库文件,当程序需要升级并且更改数据结构时,SQL语句应该放在哪里执行?

问题描述 一个客户端程序,有自己的数据库文件,当程序需要升级并且更改数据结构时,SQL语句应该放在哪里执行? 如题,开发了一个windows客户端的程序,使用了SQLITE作为数据库,setting.db就是数据库文件.由于客户端升级有时需要更改数据结构,比如加个字段什么的,这个时候就有个问题了,如果要让升级之后原来的数据库文件还能用,需要执行一次更改数据结构的SQL,但是这个更改数据结构的SQL应该放在哪里执行?才能确保它能被执行并且只被执行一次? 解决方案 不知道描述清了没,就是类似发一条S

servlet-java语言jsp怎么从一个客户端发出请求让服务器响应到另一个客户端去

问题描述 java语言jsp怎么从一个客户端发出请求让服务器响应到另一个客户端去 就是一个点击,发出请求,然后服务器响应发到其他客户端去,可以实现吗,怎么根据ip来改变服务器响应的客户端,是客户端不是界面 解决方案 单纯的jsp不能实现的 解决方案二: 单纯的jsp不能实现,分发http请求应该用servlet或是集成的框架struts,应该可以实现

从客户端访问一个客户端本地的csv文件,然后读取值,写入服务器的数据库。

问题描述 从客户端访问一个客户端本地的csv文件,然后读取值,写入服务器的数据库.能否实现这样的功能,web页面是否具备读取客户端本地文件的能力,我测试的时候服务端和客户端都是一个电脑的时候没有问题,但是当从别的电脑访问页面的时候,就会出错.

网络编程-android 安卓 4.0 给一个客户端和服务器的demo。

问题描述 android 安卓 4.0 给一个客户端和服务器的demo. android 4.0以后到底是怎么联网的?求大神给一个demo.一个客户端和一个服务器的.服务器端servlet的写的吧.越详细越好.谢谢了.对那个异步消息不是很懂,还有就是子线程一块给详细点.谢谢了 解决方案 楼主,你这个问题有点大...我提供一些思路 客户端就不用说了.服务器端,按照现在的流行趋势,建议用Nodejs + MongoDB.Nodejs就类似tomcat,是给服务器端部署监听,监听客户端的请求.Mong

pb12如何开发一个客户端与服务器端

问题描述 pb12如何开发一个客户端与服务器端 pb12如何开发一个客户端与服务器端,要添加哪些.dll或.pbl文件吗,参考资料太少里了 解决方案 http://bbs.csdn.net/topics/391856852?page=2#post-400565718 解决方案二: http://bbs.csdn.net/topics/391856852?page=2#post-400565718 解决方案三: http://bbs.csdn.net/topics/391856852?page=2

dedecms默认模板里的index.htm里的以下javascript代码是起什么作用的?谢谢!

问题描述 dedecms默认模板里的index.htm里的以下javascript代码是起什么作用的?谢谢! <script type="text/javascript"> if(window.location.toString().indexOf('pref=padindex') != -1){ }else{ if(/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMS

Modbus TCP/IP 一个客户端,对多个server,如何编程?

问题描述 各位达人:小弟做一个触摸屏的项目,触摸屏下边通过RS485接32各PLC,触摸屏读取各PLC的温度数据存储在触摸屏的内存中,同时触摸屏支持modbustcp协议,可作为server供上位机读取数据.现在拟上位机循环读取不同触摸屏(IP地址不一样)的数据.上位机作为Cient,各触摸屏做Server.等于一个Client对应多个Server.问题:上位机中如何建立多个连接?接收数据缓冲区是否也需要多个?如果上位机收到数据后直接存到数据库里,是否只用一个接收数据缓冲区就OK了? 解决方案