数往知来 AJAX Ajax增删改查<十九>
=================================================客户端================================================
<script type="text/javascript">
window.onload = function () {
ShowList();
document.getElementById('btnAdd').onclick = InsertLobin;
}
function ShowList() {
var xhr = createXhr();
xhr.open("get", "LobinTable.ashx?type=s", true);
xhr.setRequestHeader(");
xhr.onreadystatechange = function () {
) {
) {
var json = xhr.responseText;
var res = eval("(" + json + ")");
var tbl = document.getElementById("tblShow");
; i < res.length; i++) {
var name = res[i].Loginname;
var time = ChangeDateFormat(res[i].LoginTime);
); //在table下创建一个新行,并插入到原有行的后面
); //在行里面创建新列
cellId.innerHTML = res[i].Id;
);
cellName.innerHTML = name;
);
cellTime.innerHTML = time;
);
cellDel.innerHTML = "<a href='javascript:Del(" + res[i].Id + ")'>删除</a>"
);
cellAdd.innerHTML = "<a href='javascript:Add()'>添加</a>";
);
cellUpdate.innerHTML = "<a href='javascript:UpdateShow("+res[i].Id+")' >修改</a>";
}
}
}
}
xhr.send(null);
}
//显示修改的内容,定义一个全局变量把修改的id保存起来用于后面提交修改
var cid;
//点击修改
function UpdateShow(id) {
//当点击修改的时候,把层显示出来
document.getElementById('dv1').style.display = "block";
document.getElementById('btnAdd').value="修改";//把提交按钮的文本改变成“修改”
cid = id;//把选中行的id赋给一个全局变量,后面提交修改的函数里可以访问到这个id
//获得table
var tbl = document.getElementById('tblShow');
; i < tbl.rows.length; i++) {
].innerHTML == id) {//找到表格里的id和要修改的id相同的一行
document.getElementById(].innerHTML;//把选中行的数据添加到层里面的文本框里
document.getElementById(].innerHTML;
break;
}
}
}
//添加数据
var xhr = createXhr(); //创建一个HttpXmlRequest
//当点击提交按钮的时候触发
function InsertLobin() {
var btnText = document.getElementById('btnAdd').value;//获得提交按钮的文本
var txtName = document.getElementById('txtName').value;//获得用户名文本框里的内容
var txtPwd = document.getElementById('txtPwd').value;//获得密码文本框里的内容
var parameter;//要向服务器提交的参数
var type;//要做的操作,添加或修改
if (btnText == "添加") {//判断提交按钮上的文本
type = "i";//告诉服务端要做添加操作
parameter = "txtName=" + txtName + "&txtPwd=" + txtPwd + ""; //添加操作的参数
} else if (btnText == "修改") {
type = "u";
parameter = "txtName="+txtName+"&txtPwd="+txtPwd+"&id="+cid+"";//构建修改的参数
}
//调用Ajax操作
AjaxHandle(type, parameter);
}
//调用Ajax
function AjaxHandle(type,parameter) {
xhr.open("post", "LobinTable.ashx?type="+type+"", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function () {
) {
) {
var json = xhr.responseText;
switch (json) {
":
alert('操作成功!');
var tbl = document.getElementById('tblShow');
; i < tbl.rows.length; i++) {//清空列表
tbl.deleteRow(i);
}
document.getElementById('dv1').setAttribute('style', 'display:none');
document.getElementById('txtName').value = "";
document.getElementById('txtPwd').value = "";
ShowList();
break;
":
alert('操作失败!');
break;
default:
alert('出现错误!');
break;
}
}
}
}
xhr.send(parameter);
}
//显示添加的层
function Add() {
document.getElementById('btnAdd').value = "添加";
document.getElementById('txtName').value = "";
document.getElementById('txtPwd').value = "";
document.getElementById('dv1').setAttribute('style', 'display:block');
}
//执行删除
function Del(id) {
var xhr = createXhr();
xhr.open("get", "LobinTable.ashx?type=d&id=" + id, true);
xhr.setRequestHeader(");
xhr.onreadystatechange = function () {
) {
) {
var json = xhr.responseText;
var res = eval("(" + json + ")");
switch (res.action) {
:
alert("删除成功!");
DelRow(id);
break;
:
alert("删除失败!");
break;
default:
break;
}
}
}
}
xhr.send(null);
}
//删除前台页面的行
function DelRow(id) {
var tbl = document.getElementById('tblShow'); //获取表里的所有行
; i < tbl.rows.length; i++) {
].innerHTML == id.toString()) {
tbl.deleteRow(i);
break;
}
}
}
///Date(1326505492000)/---对序列化后的日期进行转换.
function ChangeDateFormat(cellval) {
));
< ? ) : date.getMonth() + ;
? " + date.getDate() : date.getDate();
return date.getFullYear() + "-" + month + "-" + currentDate;
}
</script>
=================================================服务端===========================================================================
MyName.BLL.LobinTableBLL ltb = new LobinTableBLL();
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
string type=context .Request .Params ["type"];
switch (type)
{
case "s":
GetAllData(context);
break;
case "d":
Del(context);
break;
case "u":
Update(context);
break;
case "i":
InsertData(context);
break;
default:
break;
}
}
/// <summary>
/// 修改更新数据
/// </summary>
/// <param name="context"></param>
/// <param name="id"></param>
protected void Update(HttpContext context)
{
MyName.Model. LobinTable lt = new MyName.Model. LobinTable();
lt.Id = Convert.ToInt32(context.Request.Form["id"]);
lt.Loginname=context.Request.Form["txtName"];
lt.LoginPwd=context.Request.Form["txtPwd"];
if (ltb.UpdateLobinTable(lt))
{
context.Response.Write(");
}
else
{
context.Response.Write(");
}
}
/// <summary>
/// 添加
/// </summary>
/// <param name="context"></param>
protected void InsertData(HttpContext context)
{
MyName.Model.LobinTable lt=new MyName.Model.LobinTable ();
lt.Loginname=context.Request.Form["txtName"];
lt.LoginPwd=context.Request.Form["txtPwd"];
if(ltb.AddLobinTable(lt))
{
context.Response.Write(");
}
else
{
context.Response.Write(");
}
}
/// <summary>
/// 删除
/// </summary>
/// <param name="context"></param>
protected void Del( HttpContext context)
{
int id = Convert.ToInt32(context .Request.QueryString["id"]);
if (ltb.DelLobinTable(id))
{
context.Response.Write("{'action':1}");
}
else
{
context.Response.Write("{'action':0}");
}
}
/// <summary>
/// 获取所有数据
/// </summary>
/// <param name="context"></param>
private void GetAllData(HttpContext context)
{
List<MyName.Model. LobinTable> list = ltb.GetAllLobinTable();
System.Web.Script.Serialization.JavaScriptSerializer js = new System.Web.Script.Serialization.JavaScriptSerializer();
string res = js.Serialize(list);
context.Response.Write(res);
}
public bool IsReusable {
get {
return false;
}
}
}
数往知来 AJAX Ajax增删改查<十九>的更多相关文章
- ajax参考增删改查
AJAX做增删改查详细! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "htt ...
- vue实战(一):利用vue与ajax实现增删改查
vue实战(一):利用vue与ajax实现增删改查: <%@ page pageEncoding="UTF-8" language="java" %> ...
- MVC中的Ajax与增删改查
自入手新项目以来,一直处于加班状态,博客也有两周没更,刚刚完成项目的两个模组,稍有喘息之机,写写关于项目中 的增删改查,这算是一个老生常谈的问题了,就连基本的教材书上都有.刚看书的时候,以为 没什么可 ...
- MVC中的Ajax与增删改查(一)
自入手新项目以来,一直处于加班状态,博客也有两周没更,刚刚完成项目的两个模组,稍有喘息之机,写写关于项目中 的增删改查,这算是一个老生常谈的问题了,就连基本的教材书上都有.刚看书的时候,以为 没什么可 ...
- AJAX做增删改查详细!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- idea原生ajax数据处理(增删改查)
项目名称:Bookstore UI界面 项目文件 操作: jsp代码 <%@ page import="dao.BookDAO" %> <%@ page impo ...
- 通过Ajax实现增删改查
项目链接:https://github.com/shuai7boy/Ajax_CRUD 简要截图:
- MVC中的Ajax与增删改查(二)
上一篇记录的是前台操作,下面写一下后台 ,本来自认为是没有必要做补充,毕竟思路啥的都有,实际上在做删除操作的时候,折腾了一天,还是自己太嫩,逻辑不够严谨,这里作下记录. 关于表结构这里再作下说明: ① ...
- 基于springmvc、ajax,后台连接数据库的增删改查
前言 前段时间在博客园上找了一个springmvc的例子,照着学了一下,算是对springmvc有了一个初步的了解,打一个基础,下面是链接.(我只看了博客,视频太耗时间了) 博客链接:http://w ...
随机推荐
- spring+mybati java config配置引起的bean相互引用日志报警告问题
摘要: Error creating bean with name 'XXX': Requested bean is currently in creation: Is there an unreso ...
- 监听Activity进入后台(最小化),并根据时间判断是否超时,此解决办法可用于超时重登陆
通过重写一个继承自Activity的基类中的onUserLeaveHint()方法,当用户按Home键等操作使程序进入后台时即开始计时,当用户使程序恢复为前台显示时执行onResume()方法,在其中 ...
- C# List.sort排序详解(多权重,升序降序)
很多人可能喜欢Linq的orderBy排序,可惜U3D里面linq在Ios上会报错,所以就必须使用list的排序. 其实理解了并不难 升序降序比较 sort有三种结果 1,-1,0分别是大,小,相等. ...
- 第三方登录(2)Android客户瑞上第三方登录百度教程
1,在 http://developer.baidu.com/ 注册成开发者 不注册看不到开发相关的链接地址.点自己的用户名,在弹出菜单显示有 <用户中心> ,没有就是没注册. 2,找到 ...
- lightOJ 1366 Pair of Touching Circles(统计矩形内相切圆对)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1366 题意:给出一个矩形,在内部画两个圆A和B使得AB都完全在矩形内且AB相切且AB的 ...
- JSON 之 SuperObject(8): 关于乱码的几种情况 - 向 Henri Gourvest 大师报告
这几天学习 JSON - SuperObject, 非常幸运地得到了其作者 Henri Gourvest 大师的同步指点! (Henri 大师也是 DSPack 和 GDI+ 头文件的作者; 大师是法 ...
- [转载]java的几种对象(PO,VO,DAO,BO,POJO)解释
原文地址:java的几种对象(PO,VO,DAO,BO,POJO)解释作者:munandong 一.PO:persistant object 持久对象,可以看成是与数据库中的表相映射的java对象.最 ...
- 线程——委托InvokeRequired和Invoke
C#中禁止跨线程直接访问控件,InvokeRequired是为了解决这个问题而产生的,当一个控件的InvokeRequired属性值为真时,说明有一个创建它以外的线程想访问它.此时它将会在内部调用ne ...
- Qt Creator快捷键
简介 Qt Creator中提供了各种快捷键来加快开发进程. 如果需要查看或自定义快捷键,选择工具->选项->环境->键盘.快捷键按类别列出,可以在过滤器(Filter)处输入命令名 ...
- 修改Eclipse格式化代默认长度
eclipse 默认设置的换行长度为80, 格式化代码后,同一个方法里面参数也经常被,换行,非常难看 1.Java代码打开Eclipse的Window菜单,然后 Preferences->Jav ...