随笔-312  评论-12034  文章-2  trackbacks-256
请先安装最新版本的Atlas April CTP:http://www.microsoft.com/downloads/details.aspx?FamilyId=B01DC501-B3C1-4EC0-93F0-7DAC68D2F787&displaylang=en

然后在此下载并安装Atlas Control ToolKit:http://download.microsoft.com/download/B/8/1/B8176A86-5D85-41B8-819B-19A9ACF1CE8C/AtlasControlToolkit.exe

这是该控件包的主页,内有这些控件的演示,安装说明等:http://atlas.asp.net/atlastoolkit/

该ToolKit包括如下三部分:

  1. 一个控件包,内含很多Atlas Server Side控件以及相应的源代码,以对现有的ASP.NET控件进行扩展,生成强大的客户端功能。这些控件既是学习开发的好资源,也可以马上用到现有的网站开发中,无须书写任何客户端代码。它包括如下一些控件:注:下述控件在"Atlas" Control Toolkit更新发布(Version 1.0.60504.0) 中均有更新,关于执行效率的评价已经不准确。
    1. Cascading DropDown:无刷新的级联DropDownList,需要使用UpdatePanel辅助。
    2. Collapsible Panel:客户端可折叠的Panel。
    3. Confirm Button:点击按钮后弹出确认对话框。
    4. Drag Panel:可拖动的Panel。
    5. Hover Menu:提供悬浮菜单的支持。例如鼠标移到GridView的某一行上面,弹出Edit,Delete的悬浮菜单。需要使用UpdatePanel辅助,效率极其低下。
    6. Popup Control:发生某个事件时,在页面上弹出一个控件。可用于例如Date Picker等的开发。同样使用UpdatePanel,效率比较低下。
    7. Reorder List:一个可以在客户端通过拖拽而重新排序的List,需要使用UpdatePanel辅助,效率极其低下。客户端停顿,闪烁较为严重。
    8. Textbox Watermark:鼠标单击某个Label时,该Label切换到TextBox供用户输入信息,视觉效果很棒。需要使用UpdatePanel辅助。
    9. Toggle Button:将CheckBox用一对图片代替,有丰富的视觉效果,但是因为需要使用UpdatePanel辅助,效率不是很高,有明显的延迟。
  2. 一个包含安装说明以及上述控件的演示的Web Site。内容和上面提及的这个ToolKit的主页内容一样。
  3. 一个Visual Studio 2005的Project Template,用来开发自定义的Atlas Server Side控件。

注意到上述提供的控件均为服务器端控件,基本上不需要书写客户端JavaScript代码以及Atlas Script。所以使用的难度会减小不少,与传统的ASP.NET服务器端控件一样,只需要拖拽到页面上并设置属性即可。但同时带来的是服务器端性能的开销以及开发难度的加大,同时,上述控件大都需要使用UpdatePanel辅助,产生不必要的服务器通信同时也极大影响了客户端的用户体验。孰是孰非,还请您自己判断,上面这一段为我个人看法,仅供参考。

posted on 2006-04-13 10:32 Dflying Chen 阅读(5861) 评论(30)  编辑 收藏 网摘 所属分类: ASP.NET AJAX (Atlas)

评论:
#1楼  2006-04-13 11:34 | dudu      
好东西!
看了一下Cascading DropDown,使用起来的确比较方便。

  回复  引用  查看    
#2楼 [楼主] 2006-04-13 11:40 | Dflying Chen      
@dudu
使用起来的确比较方便,但我的建议是不要过度使用。特别是与UpdatePanel相关的那些控件。效率上实在不敢恭维。

  回复  引用  查看    
#3楼  2006-04-13 11:52 | 随风飘散      
不错,看来学习的速度要加快了
  回复  引用  查看    
#4楼 [楼主] 2006-04-13 12:08 | Dflying Chen      
@随风飘散
这一部分我觉得实际应用到程序中的机会并不多,效率实在低了点。

  回复  引用  查看    
#5楼  2006-04-13 13:43 | 简单 [未注册用户]
可惜需要vs2005阿
  回复  引用    
#6楼 [楼主] 2006-04-13 13:52 | Dflying Chen      
@简单
是啊,现在还在过渡的过程中

  回复  引用  查看    
#7楼  2006-04-13 15:47 | 阿不      
@Dflying Chen
为什么你会认为效率上不敢恭维呢?传统的方式还更需刷新整个页面呢!

  回复  引用  查看    
#8楼  2006-04-13 15:49 | 随风飘散      
问一下,我的Atlas程序在发布的时候,只需要把atlas的Dll,Copy过去吗》,不需要其他的安装步骤吗》,还有Atlas的安装目录带的脚本库,是不是无论编什么应用都要加进去,强烈要求Dflying大侠,讲讲安装部署

  回复  引用  查看    
#9楼 [楼主] 2006-04-13 16:15 | Dflying Chen      
@阿不
但是传统方式不会在每次Hover的时候查询一次后台,但是上述Hover Menu的实现就是这样的,虽然用了UpdatePanel

  回复  引用  查看    
#10楼 [楼主] 2006-04-13 16:16 | Dflying Chen      
@随风飘散
只要Copy Microsoft.Web.Atlas.dll就好了,其他不需要什么.

  回复  引用  查看    
#11楼  2006-04-13 18:17 | 随风飘散      
谢谢那Atlas的安装目录里的ScriptLibrary文件夹是干嘛用的?
  回复  引用  查看    
#12楼 [楼主] 2006-04-13 18:27 | Dflying Chen      
@随风飘散
基本上,ScriptLibrary有如下用途:
1 用于当不能使用ScriptManager时候(比如使用PHP或ASP.NET 1.1),开发人员手动添加Atlas Framework的引用。
2 学习。

  回复  引用  查看    
#13楼  2006-04-13 18:33 | 随风飘散      
明白,如果选择了PHP那么整个Microsoft.Web.Atlas.dll就都不能用了吧,也就只能用用ScriptLibrary下的脚本了,回到最原始的状态了,十分感谢
  回复  引用  查看    
#14楼  2006-04-13 18:34 | 阿不      
@Dflying Chen
“效率极其低下”,是单指那些你上面有标记的控件,而不是全部的控件,对吧。

  回复  引用  查看    
#15楼 [楼主] 2006-04-13 18:39 | Dflying Chen      
@随风飘散
PHP没法运行在.NET上阿,所以Microsoft.Web.Atlas.dll也当然在PHP中没用拉。你需要手动的加入需要的JS文件。

  回复  引用  查看    
#16楼 [楼主] 2006-04-13 18:41 | Dflying Chen      
@阿不
Collapsible Panel,Collapsible Panel,Confirm Button没有性能问题,其他的Control都或多或少有性能问题,选用时应该谨慎。

  回复  引用  查看    
#17楼  2006-04-13 21:00 | Luna [未注册用户]
如何才能很好的在页面载入完成后自动运行某段javascript???

下面这段代码并不能正常运行!

default.js文件:
var resultSpan = null;

window.onload = function()
{
alert("hahah");
loadData();
}

function loadData()
{
resultSpan = document.getElementById("resultSpan");
var callback = SmartWEB.WebService.HelloWorld(onLoadDataComplete);
}

function onLoadDataComplete(result)
{
resultSpan.innerHTML = result;
}

Default.aspx 页面:
<atlas:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<atlas:ServiceReference Path="~/WebServices/WebService.asmx" />
</Services>
<Scripts>
<atlas:ScriptReference Path="~/Script/Default.js" ScriptName="custom" />
</Scripts>
</atlas:ScriptManager>
<div>
<span id="resultSpan" onclick="loadData();">Click</span>
</div>

  回复  引用    
#18楼 [楼主] 2006-04-13 21:11 | Dflying Chen      
@Luna
您可以参考如下代码:
ScriptManager:
<atlas:ScriptManager ID="scriptManager" runat="server" EnableScriptComponents="true" >
<Services>
<atlas:ServiceReference Path="SimpleService.asmx" />
</Services>
</atlas:ScriptManager>

Atlas Script:
<script type="text/xml-script">
<page xmlns:script="http://schemas.microsoft.com/xml-script/2005">
<components>
<application id="application" load="OnApplicationLoad" />
</components>
</page>
</script >

您的JS程序:
<script type="text/javascript" language="JavaScript">
function OnApplicationLoad()
{
Quickstart.Samples.SimpleService.EchoString(
'This was called during the Atlas application load event', //params
OnComplete, //Complete event
OnTimeout //Timeout event
);
return false;
}

function OnComplete(result)
{
alert(result);
}

function OnTimeout(result)
{
alert("Timed out");
}
</script>

  回复  引用  查看    
#19楼 [楼主] 2006-04-13 21:14 | Dflying Chen      
@Luna
特别需要注意的是Atlas Script:
<script type="text/xml-script">
<page xmlns:script="http://schemas.microsoft.com/xml-script/2005">
<components>
<application id="application" load="OnApplicationLoad" />
</components>
</page>
</script >

  回复  引用  查看    
#20楼  2006-04-13 21:38 | Luna [未注册用户]
哈哈哈,Dflying Chen 您的回复实在是太快了!:):

刚试验了,在我的原型基础上不变,加上这一句:

<application id="application" load="onLoad" />

即可!

但还是没有明白为什么此时window.onload不能工作,应该是ScriptManager加载时机的原因?

  回复  引用    
#21楼 [楼主] 2006-04-13 21:46 | Dflying Chen      
@Luna
window.onload意义为当本次HTTP请求结束时触发该事件。而对本次HTTP请求中连带的请求(例如页面上包含的图片,JavaScript等)的完成状况没有约束。所以,在您的例子中,window.onload发生的时候Atlas的核心类库可能尚在下载中。

  回复  引用  查看    
#22楼  2006-04-14 11:30 | 感觉      
我安装Atlas April CTP提示错误:

The cabinet file '_28942B4d.........AD377' required for this installation is corrupt and cannot be used. This could indicate a network error,an error reading from the CD-ROM,or a problem with this package.


  回复  引用  查看    
#23楼 [楼主] 2006-04-14 13:28 | Dflying Chen      
@感觉
您的下载文件是否正确呢?是不是下载的时候出了什么问题?

  回复  引用  查看    
#24楼  2006-04-27 10:05 | 菌哥      
@Dflying Chen,你好,我现在刚学习Atlas,正准备用Cascading DropDown控件来做一个无刷新的DropDownList,有一点疑惑,请教一下:

<atlasToolkit:CascadingDropDown ID="CascadingDropDown1" runat="server">
<atlasToolkit:CascadingDropDownProperties TargetControlID="DropDownList1" Category="Make" PromptText="Please select a make" ServicePath="CarsService.asmx" ServiceMethod="GetDropDownContents" />
<atlasToolkit:CascadingDropDownProperties TargetControlID="DropDownList2" Category="Model" PromptText="Please select a model" ServicePath="CarsService.asmx" ServiceMethod="GetDropDownContents" ParentControlID="DropDownList1" />
<atlasToolkit:CascadingDropDownProperties TargetControlID="DropDownList3" Category="Color" PromptText="Please select a color" ServicePath="CarsService.asmx" ServiceMethod="GetDropDownContents" ParentControlID="DropDownList2" />
</atlasToolkit:CascadingDropDown>

其中 ServicePath="CarsService.asmx" 我想是DropDwonList的数据来自WebService服务,但我想让DropDwonList的数据来自数据库中的数据,请问如何编写代码呢,谢谢

  回复  引用  查看    
#25楼 [楼主] 2006-04-27 11:17 | Dflying Chen      
@菌哥
您可以在WebService中从数据库取得您需要的数据,包装后返回给客户端。

  回复  引用  查看    
#26楼  2006-05-08 15:25 | henry      
可惜我不修改IE的安全设置是根本看不到效果.
功能虽然是好,只是对IE不了解的用户恐怕体验不了这效果.

  回复  引用  查看    
#27楼 [楼主] 2006-05-08 15:41 | Dflying Chen      
@henry
你的IE安全设置是什么啊?
默认的设置似乎不用修改阿……

  回复  引用  查看    

发表评论



姓名 [登录] [注册] 
主页
Email (仅博主可见) 
验证码 *  验证码看不清,换一张
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论   新用户注册   返回页首      

导航: 网站首页 社区 新闻 博问 闪存 网摘 招聘 .NET频道 知识库 找找看 Google站内搜索



China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
China-Pub 计算机绝版图书按需印刷服务

相关文章:

相关链接: