`
lovnet
  • 浏览: 6823436 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

Ajax 实现在WebForm中拖动控件并即时在服务端保存状态数据 (Asp.net 2.0)(示例代码下载)

阅读更多

(一).运行示例效果

* 运行后用鼠标拖动蓝色的<马>到任意位置, 将浏览器关闭后, 再重新访问本页面, 会发现<马>仍然在您拖到的位置

(二). AjaxPro.NET简介

首先对AjaxPro.NET作一下介绍, AjaxPro.NET是一个优秀的Ajax框架, 在实际应用中只要添加其DLL

引用并进行简单的配置,即可以非常方便的在客户端直接调用服务端方法, 来获取Tree节点.

(三).使用AjaxPro.NET预配置

1. 添加 AjaxPro.dll 文件的引用(示例代码中已经包含,直接COPY过来使用即可).

2. 在Web.config文件中添加以下配置,

1<httpHandlers>
2<addverb="POST,GET"path="ajaxpro/*.ashx"type="AjaxPro.AjaxHandlerFactory,AjaxPro"/>
3 </httpHandlers>
3. 在要使用AjaxPro.NET框架的页面 *.aspx.cs 的 Page_Load事件中加如下代码:
AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default));
4. 经过以上三步骤后, 只要在后台服务端的方法前面增加属性[AjaxMethod]后:
1[AjaxMethod()]//or[AjaxPro.AjaxMethod]
2publicArrayListGetSearchItems(stringstrQuery)
3{
4//生成数据源
5ArrayListitems=newArrayList();
6items.Add("King");
7items.Add("Rose");
8returnitems;
9}
10
就可以在客户端直接使用服务端方法, 非常方便, 客户端调用后台代码如下:
varreturnValue=后台代码类名.GetSearchItems(参数);

(四). 代码

1. 页面前台文件 AjaxDrag.aspx 代码如下:

1<headrunat="server">
2<title>Dragcontrols</title>
3<scriptlanguage="javascript"src="dom-drag.js"></script>
4</head>
5<bodyonload="javascript:ReadPosition();">
6<formid="form1"runat="server">
7<div>
8<tablestyle="width:839px;height:550px"
9background="http://blog.csdn.net/images/blog_csdn_net/chengking/XiangQi.JPG">
10<tr>
11<tdstyle="width:3px;height:394px;"align="left"atomicselection="false"valign="top"
12background="http://blog.csdn.net/images/blog_csdn_net/chengking/XiangQi.JPG">
13<asp:ImageID="Image1"runat="server"ImageAlign="Middle"ImageUrl="~/blue-ma.gif"
14style="cursor:hand;position:absolute;display:none"/>
15</td>
16</tr>
17</table>
18</div>
19</form>
20<scriptlanguage="javascript">
21varImage1=document.getElementById("Image1");
22Drag.init(Image1);
23Image1.onDragEnd=function(x,y)
24{
25WritePosition(x,y);
26}
27
28functionWritePosition(x,y)
29{
30_Default.WritePosition(x,y);
31}
32
33functionReadPosition()
34{
35window.setTimeout("_Default.ReadPosition(ReadPosition_callback)",600)
36}
37
38functionReadPosition_callback(response)
39{
40varvalue=response.value;
41Image1.style.left=value.X;
42Image1.style.top=value.Y;
43Image1.style.display='';
44}
45</script>
46</body>

2. 页面后台文件 AjaxDrag.aspx.cs 代码如下:

1publicpartialclass_Default:System.Web.UI.Page
2{
3protectedvoidPage_Load(objectsender,EventArgse)
4{
5Utility.RegisterTypeForAjax(typeof(_Default));
6}
7
8[AjaxPro.AjaxMethod]
9publicvoidWritePosition(intx,inty)
10{
11stringstrFileName=this.GetFileName();
12if(File.Exists(strFileName))
13{
14StreamWritersw=newStreamWriter(strFileName,false,System.Text.Encoding.UTF8);
15sw.WriteLine(x.ToString()+","+y.ToString());
16sw.Flush();
17sw.Close();
18}
19}
20
21[AjaxPro.AjaxMethod]
22publicPointReadPosition()
23{
24StreamReadersr=newStreamReader(this.GetFileName(),System.Text.Encoding.Default);
25stringstr_X_Y="";
26while(sr.Peek()>=0)
27{
28str_X_Y=sr.ReadLine();
29break;
30}
31sr.Close();
32
33string[]str_x_y=str_X_Y.Split(',');
34Pointp=newPoint();
35p.X=int.Parse(str_x_y[0]);
36p.Y=int.Parse(str_x_y[1]);
37
38returnp;
39}
40
41privatestringGetFileName()
42{
43stringrootCatoryName="AjaxDragControl";
44stringstrPath=Server.MapPath(".");
45strPath=strPath.Substring(0,strPath.IndexOf(rootCatoryName)+rootCatoryName.Length);
46stringstrFileName=Path.Combine(strPath,"save.txt");
47returnstrFileName;
48}
49}

(五). 示例代码下载

http://www.cnitblog.com/Files/ChengKing/AjaxDragControl.rar

(六). 相关文章请看

1. 在WinForm中实现拖动效果, 请看:

http://blog.csdn.net/chengking/archive/2005/10/07/496739.aspx

2. 使用键盘模拟鼠标, 请看:

http://blog.csdn.net/chengking/archive/2005/10/07/496715.aspx

分享到:
评论

相关推荐

    Ajax 实现在WebForm中拖动控件并即时在服务端保存状态数据 (Asp.net 2.0)\Ajax 实现在WebForm中拖动控件并即时在服务端保存状态数据 (Asp.net 2.0).rar

    Ajax 实现在WebForm中拖动控件并即时在服务端保存状态数据 (Asp.net 2.0)\Ajax 实现在WebForm中拖动控件并即时在服务端保存状态数据 (Asp.net 2.0).rar

    AjaxPro 实现在WebForm中拖动控件并实时在服务端保存状态数据

    综上所述,使用AjaxPro实现在WebForm中拖动控件并实时保存状态数据涉及到前端交互、Ajax通信、服务端处理以及状态持久化等多个环节。通过这种方式,我们不仅可以提升用户的交互体验,还能确保用户在刷新页面或重新...

    .net 2.0 图表控件WinForm WebForm通用

    .NET 2.0 图表控件是微软在.NET Framework 2.0版本中引入的一种用于创建数据可视化应用的强大工具。这个控件集成了WinForm和WebForm应用,为开发者提供了在桌面应用程序和Web应用程序中创建各种图表的能力。下面将...

    05.ASP.NET 2.0 编译模型

    - **继承改进**:在 ASP.NET 2.0 中,代码隐藏文件不再直接实现 `System.Web.UI.Page` 类。相反,代码隐藏文件被设计为一个局部类,其中包含了用户定义的所有代码。这意味着基础结构和连接代码不再是自动生成的一...

    asp.net 2.0 课程 教案

    在80学时的学习中,课程内容将围绕ASP.NET 2.0框架下的C#编程展开,通过“手把手教学”和实训,结合讨论式、互动式和启发式教学法,使学生能够掌握B/S结构开发,具备独立完成项目的能力。 课程教学目的包括: 1. ...

    ASP.NET 2.0动态网站开发基础教程(C#) 第01章 ASP.NET2.0基础 Framework(共32页).ppt

    ASP.NET 2.0 是微软推出的用于构建动态网站和Web应用程序的框架,它基于C#语言,集成在.NET Framework 2.0之中。这个基础教程涵盖了从基础概念到高级特性的全面内容,帮助开发者理解并掌握ASP.NET 2.0的开发技能。 ...

    ASP.Net 2.0基础教程

    - **基本的 ASP.NET 服务器端控件:** 包括各种常用的服务器控件,如 `Label`、`Button`、`TextBox`、`DropDownList` 等,并提供了每个控件的详细使用方法和示例。 - **服务器端数据验证控件:** 介绍了用于确保用户...

    在ASP.NET 2.0中操作数据:使用FormView 的模板

    在ASP.NET 2.0中操作数据:使用FormView 的模板

    ASP.NET2.0中datalist仿百度分页

    在ASP.NET 2.0中,DataList控件是一个非常实用的数据绑定控件,它可以用于显示数据集合,并提供了丰富的自定义布局和样式设置能力。在本教程中,我们将探讨如何利用DataList实现百度风格的分页功能,为用户提供更加...

    明日物流管理系统源码(Asp.net2.0)

    Asp.net 2.0中的WebForm模型使得这些页面可以有很强的交互性,通过PostBack机制,用户在页面上的操作可以触发服务器端的事件,从而实现数据的动态更新和处理。此外,Asp.net 2.0还引入了母版页(Master Page)的概念,...

    Asp.net2.0水晶报表(CrystalReports)事例源码大全(C#)

    通过 "CrystalReports2.0" 文件,我们可以学习到如何在 Asp.NET 2.0 中配置和使用 Crystal Reports,以及如何与 C# 代码配合实现各种功能。"www.pudn.com.txt" 可能包含了关于这些实例的说明或者下载链接,供开发者...

    Asp.Net webform chart控件多种应用实例

    Asp.Net WebForm Chart 控件是.NET Framework提供的一种强大的数据可视化工具,用于在Web应用程序中创建各种复杂的图表。它能够帮助开发者将数据转化为易于理解的图形,如柱状图、折线图、饼图、散点图等,适用于...

    asp.net2.0+jquery+三层架构网络相册

    1.使用vs2010开发,发布的平台版本是.net 2.0,如果大家没有vs2010,可以用其他版本的vs新建工程再重新添加代码进去. 2.图片是保存在数据库的,使用的是access数据库. 3.使用flash作为无刷新上传工具 4.原创作品,仅在...

    .net2.0论坛 源码

    所以,今天发布蜘蛛侠论坛基于ASP.NET 2.0 WebForm技术开发的最终版本。 我为这个论坛倾注了很多的个人时间,目的就是希望它功能不断完善,架构不断改进,安全性能不管提升。本论坛提供了以下一些你可能感兴趣的...

    ASP.NET 2.0安全系列课程:ASP.NET Web form验证入门

    ### ASP.NET 2.0 Web Form 验证入门知识点总结 #### 一、课程概览 本课程旨在为初学者介绍ASP.NET 2.0 Web Form应用中的验证基础和技术要点。主要内容包括: - ASP.NET Web Form验证的基础概念 - ASP.NET ...

    ASP.NET 2.0 中跨网页提交的三种方法

    在ASP.NET 2.0中,跨页面提交(Cross-Page Posting)是实现页面间数据传递的一种重要方式。它允许用户在不同的网页之间进行数据交互,而无需通过服务器端处理程序来直接重定向或跳转页面。这不仅提高了用户体验,还...

    在ASP.NET 2.0中操作数据之三十四:基于DataList和Repeater跨页面的主/从报表

    在*** 2.0中,构建跨页面的主/从报表是一项常见的数据操作需求。通常情况下,我们可能会利用GridView控件来实现此功能,因为GridView提供了HyperLinkField控件,可以方便地创建链接到其他页面的超链接。在链接中传递...

    ASP.NET2.0(C#)TreeView绑定XML、以及对其进行添加修改删除

    2. 在 `webform.aspx` 页面中,添加 `TreeView` 控件,并设置其 `DataSourceID` 属性为空,因为我们将在代码-behind(`webform.aspx.cs`)文件中动态加载XML数据。 ```html &lt;asp:TreeView ID="TreeView1" runat=...

    微软.Net2.0企业库的WebForm和WinForm的配置方法.zip

    在.NET框架2.0版本中,微软为企业级开发提供了一套强大的工具——.NET企业库(Enterprise Library)。这个库集合了一系列可重用的组件,旨在简化常见的应用程序开发任务,如数据访问、日志记录、异常处理等。本教程...

    基于ASP.NET2.0的车辆管理系统设计与实现

    在系统实现过程中,ASP.NET2.0的内置数据控件和ADO.NET库提供了便捷的数据访问和处理机制,能够与Access数据库无缝对接,实现数据的存储和检索。同时,利用VS2005的开发环境,可以快速构建和调试系统,缩短开发周期...

Global site tag (gtag.js) - Google Analytics