Asp.net利用JQuery AJAX实现无刷新评论

 

首先在数据库中就建三个字段的表用来存储用户名和评论信息,Id只是为了设置唯一标示,所以设置成整型自增字段就行了。

 

 

再建一个HTML页面,只需简单的拉几个html控件出来摆着就行,注意在页面顶部有个<table>标签用来占位输出评论内容。

 

Html页面代码就这样简单就行了:

 

<body><table id="room">
</table>
<div>
    用户名:<input id="Text1" type="text" /><br />
    信息:<textarea id="TextArea1" cols="20" name="S1" rows="5"></textarea><br />
    <input id="Button1" type="button" value="提交" /></div>
</body>

 

 

然后再页面刚加载的时候,需要从数据库中显示出已有的评论,所以建个后台一般处理程序,命名为:bodyload.ashx。这个后台处理程序就是读取数据库中的所有评论信息,加载到显示页面,当然我这里只是简单的利用|标记来区别每个用户的评论,用@标记来区分用户名和信息,所以不是很严谨。数据操作使用的是强类型的DataSet

 

获取所有评论信息后台处理代码如下:

01using System;
02using System.Collections.Generic;
03using System.Linq;
04using System.Web;
05using _20100921Web.DataSetMsgTableAdapters;
06using System.Text;
07  
08namespace _20100921Web
09{
10    /// <summary>
11    /// bodyload 的摘要说明
12    /// </summary>
13    public class bodyload : IHttpHandler
14    {
15  
16        public void ProcessRequest(HttpContext context)
17        {
18            context.Response.ContentType = "text/plain";
19            T_MsgTableAdapter adapter = new T_MsgTableAdapter();
20  
21            StringBuilder sb = new StringBuilder();
22  
23            DataSetMsg.T_MsgDataTable table = adapter.GetData();
24  
25            foreach (var v in table)
26            {
27                sb.Append(v.Username);
28                sb.Append("@");
29                sb.Append(v.Message);
30                sb.Append("|");
31            }
32  
33            String result = sb.ToString();
34  
35            context.Response.Write(result);
36  
37        }
38  
39        public bool IsReusable
40        {
41            get
42            {
43                return false;
44            }
45        }
46    }
47}

 

前台调用JQuery代码在页面加载时进行读取评论,这里就用到了JQuery中的AJAX了,其实也非常简单,就只是调用JQuery中的$.post()方法就可以实现了,该方法实质还是调用了$.ajax()的方法。

 

前台JQuery代码如下:

 

$.post("bodyload.ashx", function (data, state) {
                if (state == "success") {
                    var msgArr = data.split("|");
                    for (var i = 0; i < msgArr.length; i++) {
                        if (msgArr[i].length == 0) {
                            return;
                        }
                        var msg = msgArr[i].split("@");
                        var res = "<tr><td>" + msg[0] + "说:</td><td>" + msg[1] + "</td></tr>";
                        $("#room").append(res);
                    }
                }
            });

 

 

然后来处理每一次用户输入后的插入数据及在页面无刷新更新显示评论内容,需要另外添加一个后台处理一般程序,命名为:update.ashx,用来在后台插入数据到数据库中。

 

后台处理代码如下:

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using _20100921Web.DataSetMsgTableAdapters;
  
namespace _20100921Web
{
    /// <summary>
    /// update 的摘要说明
    /// </summary>
    public class update : IHttpHandler
    {
  
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            String username = context.Request["username"];
            String msg = context.Request["msg"];
  
            T_MsgTableAdapter adapter = new T_MsgTableAdapter();
            adapter.Insert(username, msg);
        }
  
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

 

 

最后就是在前台将数据传到后台插入,并将评论信息进行更新:

$("#Button1").click(function () {
  
                var username = $("#Text1").val();
                var msg = $("#TextArea1").text();
                $.post("update.ashx", { "username": username, "msg": msg }, function (data, states) {
                    if (states == "success") {
                        var res = "<tr><td>" + username + "说:</td><td>" + msg + "</td></tr>";
                        $("#room").append(res);
                    }
                })
            })
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASP.NET可以利用Ajax技术实现刷新页面。Ajax是一种异步的JavaScript和XML通信技术,它可以在不刷新整个页面的情况下,向服务器提交或获取数据,并将返回的数据局部地更新到页面上。在ASP.NET中,可以通过以下步骤来实现刷新页面: 1. 引入jQuery库。 在ASP.NET页面中,需要通过<script>标签引入jQuery库,例如: ``` <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script> ``` 2. 编写JavaScript代码。 通过jQuery库提供的$.ajax()方法,可以向服务器提交或获取数据,并在成功返回数据后更新页面。例如,下面的代码用于向服务器提交数据: ``` $.ajax({ type: "POST", url: "Handler.ashx", data: { name: "张三", age: 18 }, success: function (data) { $("#result").html(data); } }); ``` 其中,type表示提交数据的方式,可以是POST或GET;url表示提交数据的目标地址;data表示提交的数据,可以是JSON对象、字符串或FormData对象;success表示成功返回数据后的回调函数,data参数表示服务器返回的数据。 3. 编写服务器端代码。 在ASP.NET中,可以通过Generic Handler(通用处理程序)来处理Ajax请求。Generic Handler是一种不包含HTML标记的ASP.NET页面,可以处理各种类型的请求。例如,下面的代码用于处理上面的Ajax请求: ``` public class Handler : IHttpHandler { public void ProcessRequest(HttpContext context) { string name = context.Request.Form["name"]; int age = int.Parse(context.Request.Form["age"]); // 处理请求,返回数据 context.Response.Write("提交成功!"); } public bool IsReusable { get { return false; } } } ``` 在该代码中,通过Request.Form[]属性获取提交的数据,处理请求后通过Response.Write()方法返回数据。 通过以上步骤,就可以在ASP.NET利用Ajax技术实现刷新页面了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值