博文
Client端异步Callback实现的原理(2007-09-15 22:45:00)
摘要:我已经介绍了Client-Callback技术,那么让我们来探讨一下Client-Callback技术怎样实现异步刷新吧(实现原理)。正所谓"知其然,知其所以然"。
运行前一篇文章的(http://blog.programfan.com/article.asp?id=29426)例子,用firebug调试并打开查看一下WebResource.axd?d=23ERqfzqTJs6_Rg9n1je_Q2&t=633249794114687500。你会发现里面大有文章,呵呵!微软已经帮你封装好实现异步所需要的技术了,即是XmlHttpRequest对象。从firebug里面的js代码总共有537行,实现的技术大部分围绕XmlHttpRequest对象以及Dom技术。下面分析核心代码(core)的实现过程吧。Let's Start!
下面的一段代码取自WebForm_DoCallback的函数里面:
var xmlRequest,e;
try {
xmlRequest = new XMLHttpRequest();
}
catch(e) {
try {
xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e) {
}
}
var setRequestHeaderMethodExists = true;
try {
setRequestHeaderMethodExists = (xmlRequest && xmlRequest.setRequestHeader);
}
catch(e) {}
var callback = new Object();
callback.eventCallback = eventCallback;
callback.context = context;
callback.errorCallback = errorCallback;
callback.async = useAsync;
v......
Client端异步Callback的应用与介绍(2007-09-15 21:40:00)
摘要:1、Client端异步Callback的介绍:它是通过前端Client端向后端服务器传递参数数据,服务器再以接收到的参数进行查询或处理,最后将结果回传给前端显示结果的技术。
2、如果大家AJAX 异步技术比较熟悉的话,那么对Client-Callback技术应该也不会陌生的。Client-Callback技术与AJAX其实实现的效果是一样的,只不过实现的技术与方式不同罢了。她们异步传送与接收少量数据,实现局步刷新,而非Postback整个ViewState状态。这样比起传统的给用户一个不错的体验!
3、上面已经粗略介绍了一下Client-Callback技术,下面我将会举一个例子来阐述一下实现的过程吧。
客户端Callback.aspx页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CallBack.aspx.cs" Inherits="CallBack" %>
<!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>Client端的异步Callback</title>
<script language="javascript" type="text/javascript">
function Sum()
{
var Result=document.getElementById("txtResult");
CallServer(Result.innerText,"");
}
function ReceiveServerData(rvalue)
{
&nbs......
ASP.NET 2.0中客户端脚本总结(2007-09-14 20:21:00)
摘要:ASP.NET2.0客户端脚本使用的总结,如果总结的不够好或者其他原因请不吝请教.
1.使用OnClientClick属性打开客户端脚本,使用方法如下:
js脚本:
<script language="javascript" type="text/javascript">
<!--
function opensite()
{
window.open("http://www.csdn.net");
return true;
}
//-->
</script>
调用方法:
<asp:Button ID="Button1" OnClientClick="opensite()" runat="server" Text="打开站点" />
2.动态注册js脚本,下面介绍一下以下四个方法的含义与使用:
以下几种方法都是派生自ClientScriptManager类,研究一下里面有几十个方法,而且有些重载了.我拿最常用的方法讲一下.
1) RegisterClientScriptBlock方法:将js区块添加到页面顶端,你可以以字符串形式创建这些js代码,然后将它传递给添加网页的方法。其对应的包含方法IsClientScriptBlockRegistered()
使用方......
深入学习ASP.NET 2.0(2007-07-17 08:52:00)
摘要: 昨晚买了两本书,一本是<<Beginning SQL Server 2005 for Developers>>,另外一本是圣殿祭司的<<ASP.NET 2.0开发详解>>。一共花费了137元,虽然有点心痛,但是也值得的。......
GridView事件-PageIndexChanged(2007-03-16 00:53:00)
摘要: GridView的事件PageIndexChanged,它的用法在单击某一页导航按钮时,但在GridView控件处理分页操作之后,讲引发PageIndexChanged事件.这使你可以提供一个这样的事件处理方法,即每次发生此事件时执行一个自定义分页操作.
如果要确定用户选择的页面的索引,请使用GridView控件的PageIndex属性.PageIndex属性用来获取所显示页面的从零开始的索引.当启用分页功能时(通过设置AllowPaging属性为true).
下面的代码使用PageIndexChanged事件显示用户从页导航行中选择的页码.
<%@ Page language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void CustomersGridView_DataBound(Object sender, EventArgs e)
{
if (!IsPostBack)
{
//当页面第一次加载的时候,调用DisplayCurrentPage来显示当前页数.
DisplayCurrentPage();
}
}
void CustomersGridView_PageIndexChanged(Object sender, Event......
GridView类的介绍(2007-03-14 00:35:00)
摘要: GridView类继承CompositeDataBoundControl类.而CompositeDataBoundControl 类用作绑定到数据源中数据的复合服务器控件的基类.复合服务器控件是通过将其他一些服务器控件组合在一起而构成的一种控件.web开发人员不直接使用CompositeDataBoundControl类,而是使用从此类派生的控件,复合数据绑定控件的示例有GridView、DetailsView和FormView.这里主要讲GridView类,在此后的系列文章中我会陆续给大家介绍其他的数据绑定类,敬请大家关注!共同进步!
GridView类用于在表中显示数据源的值,其中每列表示一个字段,每行表示一条记录.GridView控件允许你选择和编辑这些项以及对它们进行排序.GridView控件支持下面的功能:
1.绑定至数据源控件(SqlDataSource)
2.内置排序功能.
3.内置更新和删除功能
4.内置分页功能.
5.内置行选择功能.
6.以编程方式访问GridView对象模型以动态设置属性、处理事件等.
7.多个键字段.
8.用于超链接列的多个数据字段.
9.可通过主题和样式进行自定义的外观.
列字段
GridView 控件中的每一列由一个 DataControlField 对象表示。默认情况下,AutoGenerat......
GridView Web 服务器控件概述 (2007-03-11 21:19:00)
摘要:显示表格数据是软件开发中的一个周期性任务。ASP.NET 提供了许多工具来在网格中显示表格数据,例如 GridView 控件。通过使用 GridView 控件,您可以显示、编辑和删除多种不同的数据源(例如数据库、XML 文件和公开数据的业务对象)中的数据。
可以使用 GridView 来完成以下操作:
通过数据源控件自动绑定和显示数据。
通过数据源控件对数据进行选择、排序、分页、编辑和删除。
另外,还可以通过以下方式自定义 GridView 控件的外观和行为:
指定自定义列和样式。
利用模板创建自定义用户界面 (UI) 元素。
通过处理事件将自己的代码添加到 GridView 控件的功能中。
注意
GridView 控件是 DataGrid 控件的后继控件。有关这两种控件之间的差异的详细信息,请参见比较 GridView 和 DataGrid Web 服务器控件。
var ExpCollDivStr = ExpCollDivStr;
ExpCollDivStr = ExpCollDivStr + "ctl00_LibFrame_ctl057ebd3bc,";
var ExpCollImgStr = ExpCollImgStr;
ExpCollImgStr = ExpCollImgStr + "ctl00_LibFrame_ctl05img,";
使用 GridView 控件进行数据绑定
GridView 控件提供了两个用于绑定到数据的选项:
使用 DataSourceID 属性进行数据绑定,此选项使您能够将 GridView 控件绑定到数据源控件。建议使用此方法,因为它允许 GridView 控件利用数据源控件的功能并提供了内置的排序、分页和更新功能。
使用 DataSource 属性进行数据绑定,此选项使您能够绑定到包括 ADO.NET 数据集和数据读取器在内的各种对象。此方法需要为所有附加功能(如排序、分页和更新)编写代码。
当使用 DataSourceID 属性绑定到数据源时,GridView 控件支持双向数据绑定。除可以使该控件显示返回的数据之外,还可以使它自动支持对绑定数据的更新和删除操作。
有关更多信息,请参见 ASP.......
功能齐全的GirdView分页显示(2007-03-11 18:51:00)
摘要:我的思想来自孟子E章的例子,资料来源于http://dotnet.aspx.cc/article/b12283de-db20-4322-accc-12724442808a/read.aspx,我只不过将用DataGrid分页改成GridView分页罢了.在Visual Web Developer环境下运行通过.例子如下:
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
btnFirst.Text = "最首页";
btnPrev.Text = "前一页";
btnNext.Text = "下一页";
btnLast.Text = "最后页";
GridView1.DataBind();
ShowPageChangedStatus();
}
private void ShowPageChangedStatus()
{
&nbs......
(翻译)动态创建GridView控件数据列(2007-03-03 16:13:00)
摘要:该文章翻译来源于http://www.dotnetbips.com/articles/displayarticledetails.aspx?articleid=520,然后我结合自己的数据库修改了一下它数据库的连接与配置.
创建一个简单的Web站点
开始用Visual Studio创建一个新的Web站点(这里我的IDE是Visual Web Developer 2005).将GridView控件和SqlDataSource控件拖放在缺省的Web窗体上.在设计的时候不要对这两个控件设置任何属性.我们将会一直做那些via code.
现在关键的是Page_Load事件的代码
protected void Page_Load(object sender, EventArgs e)
{
SqlDataSource1.ConnectionString = "Data Source=服务器名;Initial Catalog=数据库名;Persist Security Info=True;User ID=用户名;Password=密码";
SqlDataSource1.SelectCommand = "select pkey,previousName,departmentName,isSubCompany from DEPARTMENT";
SqlDataSource1.UpdateCommand = "update DEPARTMENT set previousName=@previousName,departmentName=@departmentName,isSubCompany=@isSubCompany where pkey=@pkey";
SqlDataSource1.UpdateParameters.Add("@previousName","");......