这个方法网上可以查到很多,但是好多只有点击文字编辑并保持,但是没有完整的代码写怎么保存到数据库。因为本人才疏学浅,费啦好长时间才写好把修改的内容只用一条sql语句保存到数据库,今天在这里和大家分享
这是运行图片
这是前台页面 03.aspx页面
复制代码 代码如下:
订单名称:
产品类型:
状态:
印量:
收货信息:
总金额:
这是js 03.js
复制代码 代码如下:
$(function () {
//获取class为caname的元素
$(.caname).click(function () {
var td = $(this);
var txt = $.trim(td.text());
var input = $();
td.html(input);
input.click(function () { return false; });
//获取焦点
input.trigger(focus);
//文本框失去焦点后提交内容,重新变为文本
input.blur(function () {
var newtxt = $(this).val();
//判断文本有没有修改
if (newtxt != txt) {
td.html(newtxt);
//不需要使用数据库的这段可以不需要
//var order_id = $(#id_order).text();
var updatecol = $.trim(td.prev().attr(id));//我重点要说的是着一句:td.prev();表示本td的上一个td。这句代码的意思是你所点击的td的上一个td的id(如果不明白可以看前面的03.aspx页面)。
//ajax异步更改数据库,加参数date是解决缓存问题
url = ../test/03.ashx?caname= + newtxt + &updatecol= + updatecol + &date= + new date();
//使用get()方法打开一个一般处理程序,data接受返回的参数(在一般处理程序中返回参数的方法 context.response.write(要返回的参数);)
//数据库的修改就在一般处理程序中完成
$.get(url, function (data) {
// if (data == 1) {
// alert(该类别已存在!);
// td.html(txt);
// return;
// }
// alert(data);
alert(修改成功);
td.html(newtxt);
});
复制代码 代码如下:
这是一般处理程序页面 03.ashx
复制代码 代码如下:
using system;
using system.web;
using system.data.sqlclient;
public class _03 : ihttphandler {
public void processrequest (httpcontext context) {
context.response.contenttype = text/plain;
int orderid = 5;
string newordername = context.request.querystring[caname];//获取用户修改后的文字
string updatecol = context.request.querystring[updatecol];//获取用户修改的本td的上一个td的id的值(这个id与数据库中的列名相同)
string sql = update eoprintorder set + updatecol + =@name where id_order=@id;//通过这一条sql语句,就可以对数据库进行修改 sqlparameter[] pams = {
new sqlparameter(@name,newordername),
new sqlparameter(@id,orderid)
};
string data = dscysfl.dbhelp.executecommand(sql,pams ).tostring();
context.response.write(data);
}
public bool isreusable {
get {
return false;
}
}
}