惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Security Latest
Security Latest
量子位
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
S
SegmentFault 最新的问题
The GitHub Blog
The GitHub Blog
AWS News Blog
AWS News Blog
T
Threat Research - Cisco Blogs
博客园 - Franky
Vercel News
Vercel News
H
Help Net Security
Martin Fowler
Martin Fowler
Security Archives - TechRepublic
Security Archives - TechRepublic
L
LINUX DO - 热门话题
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
L
Lohrmann on Cybersecurity
Cyberwarzone
Cyberwarzone
W
WeLiveSecurity
V2EX - 技术
V2EX - 技术
C
CERT Recently Published Vulnerability Notes
S
Secure Thoughts
C
Cyber Attacks, Cyber Crime and Cyber Security
B
Blog RSS Feed
H
Hacker News: Front Page
P
Proofpoint News Feed
博客园 - 聂微东
N
News and Events Feed by Topic
C
Cybersecurity and Infrastructure Security Agency CISA
D
Docker
博客园_首页
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
人人都是产品经理
人人都是产品经理
The Hacker News
The Hacker News
S
Security @ Cisco Blogs
博客园 - 【当耐特】
F
Fortinet All Blogs
The Register - Security
The Register - Security
A
About on SuperTechFans
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Schneier on Security
NISL@THU
NISL@THU
Attack and Defense Labs
Attack and Defense Labs
Help Net Security
Help Net Security
Cisco Talos Blog
Cisco Talos Blog
月光博客
月光博客
IT之家
IT之家
有赞技术团队
有赞技术团队
Know Your Adversary
Know Your Adversary
Hugging Face - Blog
Hugging Face - Blog

博客园 - 小肠与小豆子

博客园MetaWeblog使用帮助 [ASP.NET 1.1]Global.asax.cs中的方法的含义 Microsoft .NET Pet Shop 4 架构与技术分析 转载:键盘模拟鼠标(实现用键盘操作鼠标光标)(示例代码下载) 转载:Asp.net 2.0 用C# 创建 PDF文件[引用] (示例代码下载) 转载:Asp.net 2.0 C#实现压缩/解压功能 (示例代码下载) 转载:ASP.NET 2.0 HttpHandler实现对某种文件类型权限保护 转载:asp.net千奇百怪的日历 转载:ASP.net 2.0资料吐血收藏 解决:此页正在访问其它域的数据…… sql server系统表详细说明 数据库设计方法、规范与技巧 (转自Blogcn的我的窝) 14个数据库的设计技巧 (来自Blogcn中我的窝) SQL 数据库中所有的用户表,一个表的中的所有列信息 的SQL 转载:汉字转拼音_gb2312 C# C#中的一些常用属性 IIS状态一览表 IIS简介 IIS中的 MIME类型
转载:Ajax 实现在WebForm中拖动控件并即时在服务端保存状态数据 (Asp.net 2.0)(示例代码下载)
小肠与小豆子 · 2007-05-24 · via 博客园 - 小肠与小豆子

原文:http://blog.csdn.net/ChengKing/archive/2006/08/30/1142605.aspx

(一) . 运行示例效果

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

(二). AjaxPro.NET简介

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

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

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

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

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

1 <httpHandlers>
2             <add verb="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] 
 2 public ArrayList GetSearchItems( string strQuery )
 3 {
 4      //生成数据源
 5      ArrayList items = new ArrayList();
 6      items.Add("King");
 7      items.Add("Rose");
 8      return items ;
 9 
10 

        就可以在客户端直接使用服务端方法, 非常方便, 客户端调用后台代码如下:

var returnValue = 后台代码类名.GetSearchItems(参数);

(四). 代码

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

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

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

 1 public partial class _Default : System.Web.UI.Page 
 2 {
 3     protected void Page_Load(object sender, EventArgs e)
 4     {
 5        Utility.RegisterTypeForAjax(typeof(_Default));       
 6     }
 7 
 8    [AjaxPro.AjaxMethod]
 9    public void WritePosition(int x, int y)
10    {
11       string strFileName = this.GetFileName();
12       if (File.Exists(strFileName))
13       {
14          StreamWriter sw = new StreamWriter(strFileName, false, System.Text.Encoding.UTF8);
15          sw.WriteLine(x.ToString() + "," + y.ToString());
16          sw.Flush();
17          sw.Close();
18       }            
19    }
20 
21    [AjaxPro.AjaxMethod]
22    public Point ReadPosition()
23    {
24       StreamReader sr = new StreamReader(this.GetFileName(), System.Text.Encoding.Default);
25       string str_X_Y = "";
26       while (sr.Peek() >= 0)
27       {
28          str_X_Y = sr.ReadLine();
29          break;
30       }
31       sr.Close();   
32       
33       string[] str_x_y = str_X_Y.Split(',');
34       Point p = new Point();
35       p.X = int.Parse(str_x_y[0]);
36       p.Y = int.Parse(str_x_y[1]);
37 
38       return p;      
39    }
40 
41    private string GetFileName()
42    {
43       string rootCatoryName = "AjaxDragControl";
44       string strPath = Server.MapPath(".");
45       strPath = strPath.Substring(0, strPath.IndexOf(rootCatoryName) + rootCatoryName.Length);
46       string strFileName = Path.Combine(strPath, "save.txt");
47       return strFileName;
48    }
49 }

(五). 示例代码下载

         AjaxDragControl.rar