最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

asp.net 使用js分頁(yè)實(shí)現(xiàn)異步加載數(shù)據(jù)

 更新時(shí)間:2014年04月04日 15:42:33   作者:  
這篇文章主要介紹了asp.net使用js分頁(yè)實(shí)現(xiàn)異步加載數(shù)據(jù),需要的朋友可以參考下
1、準(zhǔn)備工作

引入“jquery-1.8.3.min.js”,AjaxPro.2.dll”:用于前臺(tái)js調(diào)用后臺(tái)方法。

2、Web.config的配置
復(fù)制代碼 代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<clear/>
<!-- 數(shù)據(jù)庫(kù)鏈接 -->
<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" />
<!-- 頁(yè)面調(diào)用后臺(tái)方法 -->
<httpHandlers>
<add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>
</httpHandlers>
</system.web>
</configuration>

3、目錄結(jié)構(gòu)
 

下面就直接上代碼了。

4、Login.aspx頁(yè)面代碼
復(fù)制代碼 代碼如下:

<%@ 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);
}
//定義一個(gè)當(dāng)前頁(yè)初始為1
var pageNo = 1;
//總頁(yè)數(shù)
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>頁(yè)|共<%=pageCount%>頁(yè)
|<a onclick="showContent('first');" href="javascript:void(0);">首頁(yè)</a>
|<a onclick="showContent('previous');" href="javascript:void(0);">上一頁(yè)</a>
|<a onclick="showContent('next');" href="javascript:void(0);">下一頁(yè)</a>
|<a onclick="showContent('last');" href="javascript:void(0);">尾頁(yè)</a>
|跳到<input id="jump"/><a onclick="showContent('jump');" href="javascript:void(0);">GO</a>
</span>
</div>
</form>
</body>
</html>

后臺(tái)代碼
復(fù)制代碼 代碼如下:

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
{
//測(cè)試用 沒(méi)頁(yè)2條數(shù)據(jù)
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具體使用方法可以網(wǎng)上例子很多
[AjaxPro.AjaxMethod]
public DataTable FindDate(int currentPage)
{
return logService.FindDate(pageSize, currentPage);
}
}
}

5、LoginLogService.cs
復(fù)制代碼 代碼如下:

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
復(fù)制代碼 代碼如下:

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方法是用來(lái)執(zhí)行insert、delete、update語(yǔ)句的,返回的是影響的行數(shù)
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語(yǔ)句執(zhí)行后的第一行第一列的值,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()返回一個(gè)Datareader對(duì)象,對(duì)象內(nèi)容是為與命令匹配的所有行,通常用于讀取數(shù)據(jù)
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];
}

}
}

復(fù)制代碼 代碼如下:

數(shù)據(jù)表結(jié)構(gòu):<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>

相關(guān)文章

  • firebird Embedded模式(.net 3.5)

    firebird Embedded模式(.net 3.5)

    實(shí)現(xiàn)的關(guān)鍵:copy fbembed.dll icudt30.dll icuuc30.dll到system32文件夾下
    2008-12-12
  • Asp.NetCore1.1版本去掉project.json后如何打包生成跨平臺(tái)包

    Asp.NetCore1.1版本去掉project.json后如何打包生成跨平臺(tái)包

    這篇文章主要為大家詳細(xì)介紹了Asp.NetCore1.1版本去掉project.json后如何打包生成跨平臺(tái)包 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • C#精髓 GridView72大絕技 學(xué)習(xí)gridview的朋友必看

    C#精髓 GridView72大絕技 學(xué)習(xí)gridview的朋友必看

    C#精髓 GridView72大絕技 學(xué)習(xí)gridview的朋友可以參考下。
    2009-10-10
  • Linkbutton控件在項(xiàng)目中的簡(jiǎn)單應(yīng)用

    Linkbutton控件在項(xiàng)目中的簡(jiǎn)單應(yīng)用

    Button控件可分為button控件、LinkButton控件、ImageButton控件三類,而LinkButton控件則在頁(yè)面上顯示為一個(gè)超級(jí)鏈接,下面與大家分享下其具體應(yīng)用
    2013-05-05
  • asp.net常用函數(shù)收藏

    asp.net常用函數(shù)收藏

    這篇文章給大家介紹asp.net常用函數(shù)收藏,主要包括 得到站點(diǎn)用戶IP,去除字符串最后一個(gè)','號(hào)、去除字符串第一個(gè)'/'號(hào)等,感興趣的朋友跟隨小編一起看看吧
    2008-09-09
  • .NET Core中HttpClient的正確打開(kāi)方式

    .NET Core中HttpClient的正確打開(kāi)方式

    這篇文章主要給大家介紹了關(guān)于.NET Core中HttpClient的正確打開(kāi)方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • 密碼綁定至密碼文本框中(TextMode設(shè)為Password)

    密碼綁定至密碼文本框中(TextMode設(shè)為Password)

    一般情況之下TextBox的TextMode設(shè)為Password話,我們想在后臺(tái)(.cs)綁定一個(gè)值至此文本框,是無(wú)法實(shí)現(xiàn)的,如果一定要綁定值的話,該如何實(shí)現(xiàn)呢?,本文將告訴你實(shí)現(xiàn)方法,感興趣的朋友可以參考下
    2013-01-01
  • .Net中的集合排序可以這么玩你知道嗎

    .Net中的集合排序可以這么玩你知道嗎

    集合為處理大量數(shù)據(jù)時(shí)所用到一種容器類。簡(jiǎn)單講就是數(shù)據(jù)結(jié)構(gòu)算法的具體平臺(tái)上的實(shí)現(xiàn)。下面這篇文章主要給大家介紹了關(guān)于.Net中集合排序的一些你可能不知道的用法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。
    2018-04-04
  • 把js文件編譯成dll供頁(yè)面調(diào)用的方法

    把js文件編譯成dll供頁(yè)面調(diào)用的方法

    這篇文章主要介紹了把js文件編譯成dll供頁(yè)面調(diào)用的方法,需要的朋友可以參考下
    2014-08-08
  • asp.net獲取網(wǎng)站絕對(duì)路徑示例

    asp.net獲取網(wǎng)站絕對(duì)路徑示例

    在編寫(xiě) ASP.NET 應(yīng)用程序的時(shí)候,有時(shí)為了更好地進(jìn)行控制靜態(tài)文件的路徑,如在模板頁(yè)或者用戶控件中設(shè)置js或者css文件的路徑等,采用絕對(duì)路徑是難免的。下面就是幾種獲取絕對(duì)路徑的幾種方法
    2014-02-02

最新評(píng)論

虎林市| 南雄市| 革吉县| 高州市| 远安县| 星子县| 鲁甸县| 乌兰察布市| 贵定县| 昌平区| 许昌县| 长治市| 侯马市| 泉州市| 海伦市| 灌云县| 苏州市| 蓬溪县| 雷波县| 吴忠市| 岳普湖县| 冷水江市| 南皮县| 屏南县| 呼玛县| 南京市| 呼伦贝尔市| 汝城县| 青浦区| 宝兴县| 商南县| 齐河县| 哈尔滨市| 湘潭市| 庆城县| 万源市| 连南| 北海市| 临桂县| 开化县| 博湖县|