- 热门文章:
- · 实现一个客户端的DataSet-----ClientDataSetDataProvider.asmx.cs(1)
- · 实现一个客户端的DataSet-----ClientDataSetDataProvider.asmx.cs(2)
- · 实现一个客户端的DataSet-----ClientDataSet.htc
- · 安装framework以后出现不能显示aspx页面,提示用户名和密码不匹配问题的解决(chicken修改补充)
- · IIS5 HTTP500内部错误解决办法(转自eNet)------(一)
- · IIS5 HTTP500内部错误解决办法(转自eNet)------(二)
- · IIS5 HTTP500内部错误解决办法(转自eNet)-------(三)
- · page_Load和page_Init的区别
- · 关于如何添加一个自增的列【原创】
- · 获得存储过程返回值的方法(return的值)
- · 关于返回前面的页面。如何两者兼得,自问自答
- · 在ASP.NET中的变量数值管理------看了这个我基本上对原来的REQUEST.FORM的方法传递变量绝望了
上一篇:KW大师精品文章赏析 >>
实现一个客户端的DataSet-----index.htm
<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>
相关文章:
- · XML技术上传文件-转贴
- · 在datagrid中的HyperLinkColumn上达到谈出一个窗口的效果
- · 再datagrid中使用droplist。。。。重要的是其中的几个用法
- · 一个用C#做的HTTP SERVER(从WINFORM搬来的)
- · ViewState 到底是什么?
- · 允许用户一次上传多个文件
- · 用C# 实现Web文件的上传
- · ASP.NET Caching
- · ASP.NET Caching(2)
- · ASP.NET ViewState 初探 (3) 转自msdn
- · ASP.NET ViewState 初探 (2) 转自msdn
- · ASP.NET ViewState 初探 (1) 转自msdn
- · ASP.NET Framework深度历险(3)
- · ASP.NET下根据QueryString决定使用哪块javascript的两种方法 :)
- · ASP.NET Framework深度历险(2)
- · 图片上传的功能简介及web.config设置(自动生成所略图)
- · 图片上传的数据库部分(自动生成所略图)
- · 图片上传的WebForm(自动生成所略图)
- · 图片上传的Codebehind(自动生成所略图)
- · ASP.NET中的事务处理和异常处理
- · ASP.NET中异常处理使用(详细)
- · ASP.NET Framework深度历险(1)
- · 我写的上传(upload)文件的codebehind代码(1gdt)
- · 我写的上传(upload)文件的codebehind代码
- · 先装.net后装IIS的问题
- · Coalesys.WebMenu source code(partial)(5)
- · Coalesys.WebMenu source code(partial)(6)
- · Coalesys.WebMenu source code(partial)(7)
- · Coalesys.WebMenu source code(partial)(8)
- · Coalesys.WebMenu source code(partial)(9)
- · Coalesys.WebMenu source code(partial)(4)
- · Coalesys.WebMenu source code(partial)(10)
- · Coalesys.WebMenu source code(partial)(2)
- · Coalesys.WebMenu source code(partial)(1)
- · Coalesys.WebMenu source code(partial)(3)
- · .NET Framework環境下的ASP網頁製作(1) (王国荣)
- · .NET Framework環境下的ASP網頁製作(2)(王国荣)
- · 运行时修改Web.config中的元素值 zhenyu(原作)
