Asp.net利用JQuery AJAX實現(xiàn)無刷新評論思路與代碼
更新時間:2012年12月30日 13:01:51 作者:
Asp.net利用JQuery AJAX實現(xiàn)無刷新評論,此功能是每一個從事asp.net開發(fā)者的朋友都希望實現(xiàn)的,本文利用閑暇時間整理了一些,有需要的朋友可以參考下
首先在數(shù)據(jù)庫中就建三個字段的表用來存儲用戶名和評論信息,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>
然后再頁面剛加載的時候,需要從數(shù)據(jù)庫中顯示出已有的評論,所以建個后臺一般處理程序,命名為:bodyload.ashx。這個后臺處理程序就是讀取數(shù)據(jù)庫中的所有評論信息,加載到顯示頁面,當然我這里只是簡單的利用|標記來區(qū)別每個用戶的評論,用@標記來區(qū)分用戶名和信息,所以不是很嚴謹。數(shù)據(jù)操作使用的是強類型的DataSet
獲取所有評論信息后臺處理代碼如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using _20100921Web.DataSetMsgTableAdapters;
using System.Text;
namespace _20100921Web
{
/// <summary>
/// bodyload 的摘要說明
/// </summary>
public class bodyload : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
T_MsgTableAdapter adapter = new T_MsgTableAdapter();
StringBuilder sb = new StringBuilder();
DataSetMsg.T_MsgDataTable table = adapter.GetData();
foreach (var v in table)
{
sb.Append(v.Username);
sb.Append("@");
sb.Append(v.Message);
sb.Append("|");
}
String result = sb.ToString();
context.Response.Write(result);
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
前臺調用JQuery代碼在頁面加載時進行讀取評論,這里就用到了JQuery中的AJAX了,其實也非常簡單,就只是調用JQuery中的$.post()方法就可以實現(xiàn)了,該方法實質還是調用了$.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);
}
}
});
然后來處理每一次用戶輸入后的插入數(shù)據(jù)及在頁面無刷新更新顯示評論內容,需要另外添加一個后臺處理一般程序,命名為:update.ashx,用來在后臺插入數(shù)據(jù)到數(shù)據(jù)庫中。
后臺處理代碼如下:
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;
}
}
}
}
最后就是在前臺將數(shù)據(jù)傳到后臺插入,并將評論信息進行更新:
$("#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);
}
})
})

再建一個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>
然后再頁面剛加載的時候,需要從數(shù)據(jù)庫中顯示出已有的評論,所以建個后臺一般處理程序,命名為:bodyload.ashx。這個后臺處理程序就是讀取數(shù)據(jù)庫中的所有評論信息,加載到顯示頁面,當然我這里只是簡單的利用|標記來區(qū)別每個用戶的評論,用@標記來區(qū)分用戶名和信息,所以不是很嚴謹。數(shù)據(jù)操作使用的是強類型的DataSet
獲取所有評論信息后臺處理代碼如下:
復制代碼 代碼如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using _20100921Web.DataSetMsgTableAdapters;
using System.Text;
namespace _20100921Web
{
/// <summary>
/// bodyload 的摘要說明
/// </summary>
public class bodyload : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
T_MsgTableAdapter adapter = new T_MsgTableAdapter();
StringBuilder sb = new StringBuilder();
DataSetMsg.T_MsgDataTable table = adapter.GetData();
foreach (var v in table)
{
sb.Append(v.Username);
sb.Append("@");
sb.Append(v.Message);
sb.Append("|");
}
String result = sb.ToString();
context.Response.Write(result);
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
前臺調用JQuery代碼在頁面加載時進行讀取評論,這里就用到了JQuery中的AJAX了,其實也非常簡單,就只是調用JQuery中的$.post()方法就可以實現(xiàn)了,該方法實質還是調用了$.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);
}
}
});
然后來處理每一次用戶輸入后的插入數(shù)據(jù)及在頁面無刷新更新顯示評論內容,需要另外添加一個后臺處理一般程序,命名為:update.ashx,用來在后臺插入數(shù)據(jù)到數(shù)據(jù)庫中。
后臺處理代碼如下:
復制代碼 代碼如下:
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;
}
}
}
}
最后就是在前臺將數(shù)據(jù)傳到后臺插入,并將評論信息進行更新:
復制代碼 代碼如下:
$("#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);
}
})
})
相關文章
.NET必知的EventCounters性能指標監(jiān)視器詳解
這篇文章主要介紹了.NET必知的EventCounters性能指標監(jiān)視器,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11
ASP.NET中實現(xiàn)jQuery Validation-Engine的Ajax驗證實現(xiàn)代碼
在jQuery的表變驗證插件中Validation-Engine是一款高質量的產(chǎn)品,提示效果非常精美,而且里面包含了AJAX驗證功能2012-05-05
基于Fiddler實現(xiàn)修改接口返回數(shù)據(jù)進行測試
這篇文章主要介紹了基于Fiddler實現(xiàn)修改接口返回數(shù)據(jù)進行測試,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-08-08
ajax.net +jquery 無刷新三級聯(lián)動的實例代碼
ajax.net +jquery 無刷新三級聯(lián)動的實例代碼,需要的朋友可以參考一下2013-05-05
.Net之微信小程序獲取用戶UnionID的實現(xiàn)
這篇文章主要介紹了.Net之微信小程序獲取用戶UnionID的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09
.Net Core WebApi部署在Linux服務器上的方法
這篇文章主要介紹了.Net Core WebApi部署在Linux服務器上的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-03-03
.NET異步編程總結----四種實現(xiàn)模式代碼總結
本篇文章主要介紹了.NET異步編程總結----四種實現(xiàn)模式,詳細的介紹了每種方法的實現(xiàn)和實例,具有一定的參考價值,有興趣的可以了解一下。2016-12-12

