激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - asp.net 使用js分頁實現異步加載數據

asp.net 使用js分頁實現異步加載數據

2019-12-03 11:48ASP.NET教程網 ASP.NET教程

這篇文章主要介紹了asp.net使用js分頁實現異步加載數據,需要的朋友可以參考下

1、準備工作 

引入“jquery-1.8.3.min.js”,AjaxPro.2.dll”:用于前臺js調用后臺方法。 

2、Web.config的配置 

復制代碼代碼如下:


<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
<connectionStrings> 
<clear/> 
<!-- 數據庫鏈接 --> 
<add name="connSwtLoginLog" connectionString="Server=DUWEI\SQL2005;Database=SwtLoginLog;user id=sa;password=111111;Connect Timeout=120;pooling=true;min pool size=5;max pool size=10"/> 
</connectionStrings> 
<system.web> 
<compilation debug="true" targetFramework="4.0" /> 
<!-- 頁面調用后臺方法 --> 
<httpHandlers> 
<add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/> 
</httpHandlers> 
</system.web> 
</configuration> 


3、目錄結構 
asp.net 使用js分頁實現異步加載數據 

下面就直接上代碼了。 

4、Login.aspx頁面代碼 

復制代碼代碼如下:


<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="AspNet.Login" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
<title></title> 
<script src="js/jquery-1.8.3.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
function initTable(dt) { 
var str = '<table border="1px">' 
+ '<tr>' 
+ '<td>' 
+ 'LoginID' 
+ '</td>' 
+ '<td>' 
+ 'SwtID' 
+ '</td>' 
+ '<td>' 
+ 'UserName' 
+ '</td>' 
+ '<td>' 
+ 'IP' 
+ '</td>' 
+ '<td>' 
+ 'Address' 
+ '</td>' 
+ '<td>' 
+ 'LogTime' 
+ '</td>' 
+ '<td>' 
+ 'LogType' 
+ '</td>' 
+ '</tr>'; 
for (var i = 0; i < dt.Rows.length; i++) { 
str = str + '<tr>' 
+ '<td>' 
+ dt.Rows[i]['LoginID'] 
+ '</td>' 
+ '<td>' 
+ dt.Rows[i]['SwtID'] 
+ '</td>' 
+ '<td>' 
+ dt.Rows[i]['UserName'] 
+ '</td>' 
+ '<td>' 
+ dt.Rows[i]['IP'] 
+ '</td>' 
+ '<td>' 
+ dt.Rows[i]['Address'] + dt.Rows[i]['Address2'] 
+ '</td>' 
+ '<td>' 
+ dt.Rows[i]['LogTime'] 
+ '</td>' 
+ '<td>' 
+ dt.Rows[i]['LogType'] 
+ '</td>' 
+ '</tr>' 

str = str + '</table>'; 
$("#d1").html(str); 

function firtPage(page) { 
$("#pageNo").text(page); 
var dt = AspNet.Login.FindDate(page).value; 
initTable(dt); 

//定義一個當前頁初始為1 
var pageNo = 1; 
//總頁數 
var totalPage = <%=pageCount %>; 
function showContent(op) { 
if (op == "first") { 
pageNo = 1; 

else if (op == "previous") { 
if (pageNo > 1) 
pageNo -= 1; 
else 
pageNo = 1; 

else if (op == "next") { 
if (pageNo < totalPage - 1) 
pageNo += 1; 
else 
pageNo = totalPage - 1; 

else if (op == "last") { 
pageNo = totalPage - 1; 

else if(op=="jump"){ 
var jump = $("#jump").val(); 
if(jump<1 || jump>totalPage){ 
pageNo = 1; 
}else{ 
pageNo = jump; 


else { 
pageNo = 1; 

firtPage(pageNo); 

$(function () { 
showContent("first"); 
}); 
</script> 
</head> 
<body> 
<form id="form1" runat="server"> 
<div id="d1" align="center"></div> 
<div align="center"> 
<span id="sp_ShowContent"> 
第<label id="pageNo"></label>頁|共<%=pageCount%>頁 
|<a onclick="showContent('first');" href="javascript:void(0);">首頁</a> 
|<a onclick="showContent('previous');" href="javascript:void(0);">上一頁</a> 
|<a onclick="showContent('next');" href="javascript:void(0);">下一頁</a> 
|<a onclick="showContent('last');" href="javascript:void(0);">尾頁</a> 
|跳到<input id="jump"/><a onclick="showContent('jump');" href="javascript:void(0);">GO</a> 
</span> 
</div> 
</form> 
</body> 
</html> 


后臺代碼 

復制代碼代碼如下:


using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data; 
using AspNet.service; 

namespace AspNet 

public partial class Login : System.Web.UI.Page 

//測試用 沒頁2條數據 
public int pageSize = 2; 
public int pageCount; 
public LoginLogService logService = new LoginLogService(); 
protected void Page_Load(object sender, EventArgs e) 

AjaxPro.Utility.RegisterTypeForAjax(typeof(Login)); 
if (!IsPostBack) 

pageCount = logService.PageCount(pageSize); 


//AjaxPro具體使用方法可以網上例子很多 
[AjaxPro.AjaxMethod] 
public DataTable FindDate(int currentPage) 

return logService.FindDate(pageSize, currentPage); 



5、LoginLogService.cs 

復制代碼代碼如下:


using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Data; 
using System.Data.SqlClient; 

namespace AspNet.service 

public class LoginLogService 

public DataTable FindDate(int pageSize, int currentPage) 


string sql = "SELECT LoginID,SwtID,UserName,IP,Address,Address2,LogTime,LogType FROM ( " 
+ "SELECT * ,ROW_NUMBER() OVER(ORDER BY LoginID) AS columnNum FROM dbo.LoginLog ) a " 
+ "WHERE a.columnNum BETWEEN @begin AND @end"; 
SqlParameter[] paras = new SqlParameter[]{new SqlParameter("@begin",pageSize * (currentPage-1)+1), 
new SqlParameter("@end",pageSize * currentPage)}; 
DataTable dt = DBHelper.GetDataSet(sql, paras); 
return DBHelper.GetDataSet(sql, paras); 

public int PageCount(int pageSize) 

string sql = "SELECT COUNT(1) FROM dbo.LoginLog"; 
int rowCount = int.Parse(DBHelper.GetDataSet(sql).Rows[0][0].ToString()); 
return rowCount % pageSize == 0 ? rowCount / pageSize : rowCount / pageSize+1; 



6、Utils放著DBHelper.cs 

復制代碼代碼如下:


using System; 
using System.Collections.Generic; 
using System.Text; 
using System.Data; 
using System.Data.SqlClient; 
using System.Configuration; 

namespace AspNet 

public static class DBHelper 


private static SqlConnection connection; 
public static SqlConnection Connection 

get 

string connectionString = ConfigurationManager.ConnectionStrings["connSwtLoginLog"].ConnectionString; 
if (connection == null) 

connection = new SqlConnection(connectionString); 
connection.Open(); 

else if (connection.State == System.Data.ConnectionState.Closed) 

connection.Open(); 

else if (connection.State == System.Data.ConnectionState.Broken) 

connection.Close(); 
connection.Open(); 

return connection; 



//ExecuteNonQuery方法是用來執行insert、delete、update語句的,返回的是影響的行數 
public static int ExecuteCommand(string safeSql) 

SqlCommand cmd = new SqlCommand(safeSql, Connection); 
int result = cmd.ExecuteNonQuery(); 
return result; 


public static int ExecuteCommand(string sql, params SqlParameter[] values) 

SqlCommand cmd = new SqlCommand(sql, Connection); 
cmd.Parameters.AddRange(values); 
return cmd.ExecuteNonQuery(); 



//ExecuteScalar()返回sql語句執行后的第一行第一列的值,object類型 
public static int GetScalar(string safeSql) 

SqlCommand cmd = new SqlCommand(safeSql, Connection); 
int result = Convert.ToInt32(cmd.ExecuteScalar()); 
return result; 


public static int GetScalar(string sql, params SqlParameter[] values) 

SqlCommand cmd = new SqlCommand(sql, Connection); 
cmd.Parameters.AddRange(values); 
int result = Convert.ToInt32(cmd.ExecuteScalar()); 
return result; 


//ExecuteReader()返回一個Datareader對象,對象內容是為與命令匹配的所有行,通常用于讀取數據 
public static SqlDataReader GetReader(string safeSql) 

SqlCommand cmd = new SqlCommand(safeSql, Connection); 
SqlDataReader reader = cmd.ExecuteReader(); 
return reader; 


public static SqlDataReader GetReader(string sql, params SqlParameter[] values) 

SqlCommand cmd = new SqlCommand(sql, Connection); 
cmd.Parameters.AddRange(values); 
SqlDataReader reader = cmd.ExecuteReader(); 
return reader; 


public static DataTable GetDataSet(string safeSql) 

connection = Connection; 
DataSet ds = new DataSet(); 
SqlCommand cmd = new SqlCommand(safeSql, Connection); 
SqlDataAdapter da = new SqlDataAdapter(cmd); 
da.Fill(ds); 
cmd.Parameters.Clear(); 
return ds.Tables[0]; 


public static DataTable GetDataSet(string sql, params SqlParameter[] values) 

DataSet ds = new DataSet(); 
SqlCommand cmd = new SqlCommand(sql, Connection); 
cmd.Parameters.AddRange(values); 
SqlDataAdapter da = new SqlDataAdapter(cmd); 
da.Fill(ds); 
cmd.Parameters.Clear(); 
return ds.Tables[0]; 



 

復制代碼代碼如下:


數據表結構:<pre code_snippet_id="274427" snippet_file_name="blog_20140404_6_6418355" name="code" class="plain">CREATE TABLE [dbo].[LoginLog]( 
[LoginID] [int] IDENTITY(1,1) NOT NULL, 
[SwtID] [int] NULL, 
[UserName] [nvarchar](255) COLLATE Chinese_PRC_CI_AS NULL, 
[IP] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NULL, 
[Address] [nvarchar](255) COLLATE Chinese_PRC_CI_AS NULL, 
[Address2] [nvarchar](255) COLLATE Chinese_PRC_CI_AS NULL, 
[LogTime] [datetime] NULL, 
[LogType] [int] NULL CONSTRAINT [DEFAULT_LoginLog_LogType] DEFAULT ((1)), 
CONSTRAINT [PK_LoginLog_LoginID] PRIMARY KEY CLUSTERED 

[LoginID] ASC 
)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] 
) ON [PRIMARY]</pre> 
<pre></pre> 
<pre code_snippet_id="274427" snippet_file_name="blog_20140404_6_6418355" name="code" class="csharp"><pre code_snippet_id="274427" snippet_file_name="blog_20140404_6_6418355" name="code" class="sql"><pre code_snippet_id="274427" snippet_file_name="blog_20140404_6_6418355"></pre> 
<pre></pre> 
<pre></pre> 
<pre></pre> 
<pre></pre> 
<pre></pre> 

</pre></pre> 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产无遮挡一区二区三区毛片日本 | 色妞色视频一区二区三区四区 | 在线小视频国产 | 中国洗澡偷拍在线播放 | 沉沦的校花奴性郑依婷c到失禁 | 国产精品9191 | 日本黄色免费播放 | av在线试看| 日韩在线毛片 | 亚洲午夜精选 | 欧美人与牲禽动交精品一区 | 久久久婷婷 | 伊人在线 | 精品亚洲视频在线观看 | 欧美在线观看黄色 | 一级黄色av电影 | 国产第一页精品 | 久久99国产精品视频 | 久久精品综合视频 | 伊人欧美| 毛片在线视频观看 | 国产精品久久久av | 久久美女色视频 | 久草视频2 | 国产成人在线播放视频 | 免费观看高清视频网站 | 欧美亚州 | 久久国产精品区 | 精品国产一区二区三区久久久蜜月 | 精国品产一区二区三区有限公司 | 黄色免费av网站 | 日本人乱人乱亲乱色视频观看 | 久久精品久久久久 | 欧美精品一级 | 国产视频在线观看免费 | 九九爱视频 | 免费激情网址 | 精品国产一区二区三区四区在线 | 欧美成人一级视频 | 久久综合一区二区 | 免费看成人毛片 |