使用 Scriptaculous 创建支持 AJAX 的拖放自定义控件






1.91/5 (5投票s)
一个拖放自定义控件。
引言
好吧,我不太擅长写文章,但希望这对您有所帮助。
如今 AJAX 备受关注,为您的开发添加拖放功能无疑是最令人惊叹的事情之一。Scriptaculous 框架允许实现此功能,并且将此功能封装在一个易于使用的 ASP.NET 用户控件中,对我来说将非常方便。
背景
在使用这些控件之前,您必须拥有 script.aculo.us 1.7.1 beta 3 库的可用副本 在此处提供。
Using the Code
要使用这些控件,只需下载项目并构建解决方案。生成的 .dll 文件应该是控件库以及 Jason Diamond 编写的配套 Ajax.NET 库。
编译解决方案后,将 .dll 文件包含在您的网站解决方案中,并在您的网页中注册控件;例如:
<%@ Register Assembly="CJO.Core.Controls"
Namespace="CJO.Core.Controls" TagPrefix="CJO_Control" %>
您首先要添加的控件是“PagePartManager
”,它会将所有必需的 JavaScript 输出到您的页面。注意:应该设置一个“Scriptaculous_Path
”属性,以指示您的 Scriptaculous 目录的根路径。
<CJO_Control:PagePartManager Scriptaculous_Path="scriptaculous"
ID="PagePartManager1" runat="server" />
之后,您可以添加“PagePartHolder
”控件,这些控件是页面中可以放置项目的区域,以及“PagePart
”,它是一个可以拖动的控件。
<CJO_Control:PagePartPlaceHolder ID="PagePartPlaceHolder1" runat="server">
<CJO_Control:PagePart ID="PagePart_1" runat="server">
Draggable content here
</CJO_Control:PagePart>
<CJO_Control:PagePart ID="PagePart_2" runat="server">
More draggable content here
</CJO_Control:PagePart>
</CJO_Control:PagePartPlaceHolder>
每当将“PagePart
”控件移动到另一个位置时,都会发出一个 AJAX 调用,该调用会在“PagePartManager
”中触发一个自定义事件。此事件将为添加到页面的每个“PagePartPlaceHolder
”调用一次;例如:
protected void Page_Init(object sender, EventArgs e)
{
prtManager1.SortableOrder_Changed +=
new PagePartManager.SortOrder_Changed_Deligate(prtManager1_SortableOrder_Changed);
}
void prtManager1_SortableOrder_Changed(SortOrderChangedEventArgs e)
{
throw new Exception("Sortable order changed: " + e.RawResponse);
}
希望这对大家有所帮助。