当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > Asp.net利用JQuery弹出层加载数据代码

ASP.NET
二级域名Cookie问题的解决方法
如何为asp.net网站项目添加子项目
asp.net用url重写URLReWriter实现任意二级域名
asp.net 序列化and反序列化演示
asp.net Timer的使用方法
AjaxControlToolKit DropDownExtender(下拉扩展控件)使用方法
AjaxControlToolKit CalendarExtender(日历扩展控件)的使用方法
让GridView只显示特定用户的数据的方法
让GridView只更新某些特定的数据的方法
ajaxControlToolkit中CascadingDropDown的用法说明
axp.net ScriptManager的简单用法
把程序集安装到全局程序集缓存中的步骤
引用全局程序集缓存内的程序集的方法
asp.net COOKIES需要注意的一点
asp.net UrlReWriter使用经验小结
页面导出为Excel的时间格式的问题
asp.net cookie清除的代码
Asp.net XMLHTTP封装类(GET,Post发送和接收数据)
ASP.NET XmlHttp跨域访问实现代码
Asp.NET 随机码生成基类(随机字母,随机数字,随机字母+数字)

ASP.NET 中的 Asp.net利用JQuery弹出层加载数据代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 277 ::
收藏到网摘: n/a

最近看QQ空间里面的投票功能很使用。点击一个链接就弹出一个层,然后再加载一些投票信息,旁边的区域变成灰色不可用状态。其实这不算什么高深的技术,只要在ASP.NET中利用JQuery结合一般处理程序ASHX即可搞定了。 首先我们新建一个网站,在网站里面新增一般处理程序,命名为ReadData.ashx。然后在里面输入如下代码:
复制代码 代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Data.SqlClient; //引入命名空间
using System.Data;
namespace 加载层
{
/// <summary>
/// $codebehindclassname$ 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class ReadData : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
//context.Response.ContentType = "text/plain";
//context.Response.Write("Hello World");
//获取外部传进来的变量值i
int i = Int32.Parse(context.Request.QueryString["i"]);
//连接数据库
SqlConnection con = new SqlConnection("data source=.;user id=sa;pwd=5239898;database=librarydatabase;");
con.Open();
SqlDataAdapter ada = new SqlDataAdapter("select * from reader where 序号='" + i + "'", con);
SqlCommandBuilder com = new SqlCommandBuilder(ada);
DataSet ds = new DataSet();
ada.Fill(ds, "reader");
con.Close();
//读取表中栏位为“姓名”的字段值,并传出
context.Response.Write(ds.Tables["reader"].Rows[0]["姓名"].ToString());

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

然后我们需要新建一个JavaScript文件,命名为loaddata.js。输入如下代码:
复制代码 代码如下:

/*当DOM加载完毕之后就自动为两个链接添加Click事件*/
$("document").ready(function() {
$("a[href=javascript]").click(function() {
chkform();
return false;
})
$("a[href=test]").click(function() {
$("#load").css("display", "none");
$("#mark").css("display", "none");
return false;
})
});

var chkform = function() {
new Request({
/*调用一般处理程序进行后台抓取数据并返回txt变量*/
url: 'ReadData.ashx?i=' + $("#Text1").attr("value"),
/*抓取数据成功之后*/
onSuccess: function(txt) {
$("#load").append("<P>" + txt + "</P>");
$("#load").css("display", "block");
$("#mark").css("display", "block");
},
/*正在抓取*/
onRequest: function() {
$("#load").append("<P>正在加载</P>");
},
/*数据加载失败*/
onFailure: function() {
alert('信息加载失败!');
}
}).send();
}

还没完,我们还要新增一个CSS文件,命名为main.css,深入如下样式:
复制代码 代码如下:

#mark{
width: 100%;
background-color:White;
position:absolute;
left: 0px;
top: 0px;
height: 700px;
filter:alpha(opacity=70);
-moz-opacity:70;
opacity:70;
z-index:2;
display:none;
}
#load
{
background-color:Gray;
border: 1px solid #999;
font-size: 12px;
position:relative;
margin:0 auto;
margin-top:100px;
width:200px;
height:150px;
z-index:99;
display:none;
}


我们在网站的首页里面源码输入如下代码:
复制代码 代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="加载层._Default" %>
<!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>
<link type="text/css" href="main.css" rel="Stylesheet" />
<script type="text/javascript" src="mootools.js"></script> //记得引入这个javascript库文件
<script type="text/javascript" src="jquery-1.3.1-vsdoc.js"></script> //VS支持智能提示的文件,可有可无
<script type="text/javascript" src="jquery-1.3.1.js"></script> //记得引入JQuery
<script type="text/javascript" src="loaddata.js"></script>
</head>
<body>
<div id="me">
<a href="javascript">点击加载</a>
<input id="Text1" type="text" /></div>
<div id="load">
load <a href="test">试试</a>
</div>
<div id="mark">
</div>
</body>
</html>

至此完成了我们要的效果。
效果图及DEMO一会放出。

看上面的链接以及文本框都处于“灰色”状态,不可编辑。点击中间弹出层的链接可以回到最初状态。整个过程中页面都没有刷新!
Demo下载地址: /upload/tech/20100110/20100110115707_430c3626b879b4005d41b8a46172e0c0.rar