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

推荐订阅源

V
Visual Studio Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
N
Netflix TechBlog - Medium
博客园 - 叶小钗
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
V
V2EX
IT之家
IT之家
J
Java Code Geeks
Hacker News - Newest:
Hacker News - Newest: "LLM"
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
GbyAI
GbyAI
D
Docker
S
Secure Thoughts
Recent Announcements
Recent Announcements
Webroot Blog
Webroot Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
云风的 BLOG
云风的 BLOG
博客园_首页
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Security Archives - TechRepublic
Security Archives - TechRepublic
酷 壳 – CoolShell
酷 壳 – CoolShell
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
N
News | PayPal Newsroom
S
Security @ Cisco Blogs
I
InfoQ
Last Week in AI
Last Week in AI
SecWiki News
SecWiki News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
W
WeLiveSecurity
T
Troy Hunt's Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Attack and Defense Labs
Attack and Defense Labs
美团技术团队
T
The Blog of Author Tim Ferriss
Google DeepMind News
Google DeepMind News
Martin Fowler
Martin Fowler
B
Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Scott Helme
Scott Helme
T
Tor Project blog
Know Your Adversary
Know Your Adversary
有赞技术团队
有赞技术团队
Hugging Face - Blog
Hugging Face - Blog
Recorded Future
Recorded Future
C
Cyber Attacks, Cyber Crime and Cyber Security
AI
AI
G
Google Developers 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