65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.91/5 (5投票s)

2007年6月25日

CPOL

1分钟阅读

viewsIcon

31537

downloadIcon

157

一个拖放自定义控件。

引言

好吧,我不太擅长写文章,但希望这对您有所帮助。

如今 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);
}

希望这对大家有所帮助。

© . All rights reserved.