Ajax - 异步处理(点击变成文本框并修改)

效果:

对应的文档结构

Test.aspx 前台代码

  1. 引入JQuery(jquery-1.8.3.min.js)。
  2. 引入自己所写的JS代码(UserJS.js)。
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <script src="js/jquery-1.8.3.min.js"></script>
    <script src="js/UseJS.js"></script>
    <style type ="text/css">
        #table1 {
            margin:0 auto;
        }
        #table1 tr, #table1 tr th, #table1 tr td{
            border:1px solid #ff6a00;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
        <table id ="table1">
            <tr>
                <th>ID</th>
                <th>Name</th>
                <th>Score</th>
            </tr>
            <asp:Repeater ID="Repeater1" runat="server">
                <ItemTemplate>
                    <tr>
                        <td><%#Eval("ID") %></td>
                        <td><%#Eval("Name") %></td>
                        <td class ="Score"><%#Eval("Score") %></td>
                    </tr>
                </ItemTemplate>

            </asp:Repeater>
        </table>
    </form>
</body>
</html>

  

Test.aspx.cs 前台页面对应的后台代码

protected void Page_Load(object sender, EventArgs e)
{
    string text = "select ID, Name, Score from Tb_Mark";
    this.Repeater1.DataSource = SQLHelper.ExecuteTable(text, CommandType.Text);
    this.Repeater1.DataBind();
}

  

UserJS.js 自己所写的JS代码

$(function () {
    //为每一个Class为Score的标签添加Click事件
    $(".Score").click(function () {
        var object = $(this);//保存对象
        var Oldvalue = object.text();//获取文本框中的值
        var input = $("<input type=‘text‘ value=" + Oldvalue + ">");//保存input对象
        object.html(input);//将上面所定义的文本框写入到界面
        input.select();//将文本框中的内容处于选中状态
        input.click(function () {//文本框的点击事件
            return false;//使点击过后的文本框失效
        })
        //获取ID值
        var ID = object.prev().prev().text();
        //这个步骤是,将文本框中的值(不管是新值还是原始值),重新变成文本显示
        //同时也解决了,其他文本框为多选中的问题
        input.blur(function () {//失去焦点事件
            var NewValues = $(input).val();//获取文本框中的值
            object.html(NewValues);//使文本框变为新值

            //-----------------------------------------使用Ajax异步执行--------------------------------------------//

            //Ajax异步执行
            $.ajax({
                type: "GET",
                url: "../Handeler/Ajax.ashx",//用来指定要传递给哪个处理页面(不限于一般处理程序,也可以使aspx页面)。
                data: "Value=" + encodeURI(NewValues) + "&ID=" + ID + "",//要传递的数据。
                success: function (msg) {//接收后台程序的返回值。
                    if (!msg) {
                        alert("修改失败!");
                    }
                }
            });

            //----------------------------------------------------------------------------------------------------//
        });
    })
})

  

  

Ajax.ashx 后台的一般处理程序代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using DAL;

namespace Shop.Handeler
{
    /// <summary>
    /// Ajax 的摘要说明
    /// </summary>
    public class Ajax : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            //Ajax异步执行
            //$.ajax({
            //    type: "GET",
            //    url: "../Handeler/Ajax.ashx",//用来指定要传递给哪个处理页面(不限于一般处理程序,也可以使aspx页面)。
            //    data: "Value=" + encodeURI(NewValues) + "&ID=" + ID + "",//要传递的数据。
            //    success: function (msg) {//接收后台程序的返回值。
            //        if (!msg) {
            //            alert("修改失败!");
            //        }
            //    }
            //});
            string ID = context.Request.QueryString["ID"].ToString();
            string value = context.Request.QueryString["Value"].ToString();
            string text = "update Tb_Mark set Score = ‘" + context.Server.UrlDecode(value) + "‘ where ID = ‘" + ID + "‘";
            if (!(SQLHelper.ExecuteNonQuery(text, System.Data.CommandType.Text) == 1))
            {
                context.Response.Write(true);
            }
            else
            {
                context.Response.Write(false);
            }
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

  

  

时间: 2024-10-11 04:38:51

Ajax - 异步处理(点击变成文本框并修改)的相关文章

jsp+ajax实现无刷新鼠标离开文本框即验证用户名

欢迎大牛提意见 jsp+ajax实现无刷新,鼠标离开文本框即验证用户名,操作如下:新建一个输入页面,起名为input.jsp, [java] <%@ page contentType="text/html; charset=utf-8"%> <html> <head> <title>jsp+ajax实现无刷新_鼠标离开文本框即验证用户名</title> <meta http-equiv="Content-Typ

PrimeFace JSF中使用ajax控件无法实时更新文本框inputTextarea内容

PrimeFace+JSF实际工作需要点击一个树将关联的文本添加到inputTextarea文本框,inputTextarea允许用户随意更改,ajax绑定树的select事件,但点击时,后台Bean对象无法实时获取前台文本框改变的实际内容. 原因估计ajax控件无法将前台文本框数据关联到后台. 解决方案: 添加一个按钮和文本框鼠标事件,事件JS调用按钮click事件,由按钮将文件夹数据同步到后台. 前台代码: <script> function callButton(){ document.

原生Ajax GET请求无刷新实现文本框用户名是否被注册

实现Ajax需要使用一个核心对象XMLHttpRequest XMLHttpRequest对象可以在不向服务器提交整个页面的情况下,实现局部更新网页.当页面全部加载完毕后,客户端通过该对象向服务器请求数据,服务器端接受数据并处理后,向客户端反馈数据. XMLHttpRequest 对象提供了对 HTTP 协议的完全的访问,包括做出 POST 和 HEAD 请求以及普通的 GET 请求的能力.XMLHttpRequest 可以同步或异步返回 Web 服务器的响应,并且能以文本或者一个 DOM 文档

解决OneThink中无法异步提交kindeditor文本框中修改后的内容

最近在使用OneThink中自带的kindeditor编辑器的时候,保存草稿的时候,输入的内容总是不能够保存到后台.如下图 通过分析URL,发现原来content值为空 明明有值,为什么是空呢?但是如果不采用异步方式提交表单的话,则可以获取到输入值.开始一直以kindeditor为是ajax的问题,最后,查阅资料才知道原来是kindeditor的问题.因为在异步提交数据的时候,并没有将kindeditor中输入的值,同步到对应的文本框上.正确的做法是,当kindeditor失去焦点的时候,就进行

Jquery实现点击文字后变成文本框,修改发送后台保存

本文实现以下几个功能: 1.点击文字变为文本框 ,并选中文字2.对文本框内容进行修改3.点击文本框以外的地方文本框再次变为修改后的文字,如果是删除文字,显示默认提示文字4. 同步更新SQL数据库内容 首先是HTML模板部分: 1 <{if !empty($img_list)}> 2 <{foreach $img_list as $kk=>$vv}> 3 <div class="item-box radius3"> 4 <a href=&q

JQuery简单的按钮点击和文本框输入事件

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getS

Android点击EditText文本框之外任何地方隐藏键盘的解决办法

1,实现方法一:通过给当前界面布局文件的父layout设置点击事件(相当于给整个Activity设置点击事件),在事件里进行键盘隐藏 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/traceroute_rootview" android:layout_width="fill_parent" android:l

easyui 点击combox 文本框 显示下拉 panel

$(".combo-text").click(function () { var mid = $(this).parent().parent().find("select").attr("id"); $("#" + mid).combobox("showPanel"); });

ajax实例及实现文本框异步搜素

search.jsp(WebContent/jsp/search.jsp) <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w