转自-开心就好-2006年11月
今天继续讲Sidebar Gadget的开发。此篇将是本教程的最后一篇,因为了解了Gadget的大体情况后,接下来就需要大家自己进行练习了。只有勤于练习,而不是安心看教程,你才会积累丰富的开发经验。而且有些细节其实只需要点一下即可,不需要再详述。
从两周前开始,我们面对两个Partner进行了Gadget开发的Workshop。并且每个Partner均讲述了真实的Requirement,进行Job training。目前来看,这种效果非常不错,建议各位也可以在工作中进行学习。
在上一节教程当中,我们在最后给出了几个问题。现在一一回答该问题。
- Gadget当中如何含有设置界面?即那个类似于小板手似的图标?
其实这个问题的答案很简单,只需要在主界面所关联的Javascript中加入一句:System.Gadget.settingsUI = "settings.htm";即可,该语句中的settings.htm可以取代为其它名字.
- 如何使Gadget出现Flyout界面?
这个问题如上所示,只需要加一句:System.Gadget.Flyout.file="flyout.htm" 即可,同理,此句中的flyout.htm也可以换成其它的文件名。在需要显示Flyout界面时(比如某个超链接点击事件,或者某个图片控件的双击事件),调用System.Gadget.Flyout.show=true即可,不需要其它设置。当然,你可以在显示时进行一些其它的处理,那么可以调用它的事件函数即System.Gadget.Flyout.onShow(指向一个函数名),其对应的隐藏事件函数为System.Gadget.Flyout.onHide函数
- 如何得到系统信息?
Sidebar为Javascript扩充了一些API,用于执行外部命令,或者得到系统信息,或者对于Gadget内部本身的调用(如上面的Flyout以及SettingsUI),关于这些API的详细信息,可以参阅:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sidebar/sidebar/reference/refs.asp 得到更加详细的信息。
- 如何在没有使用ASP.NET AJAX框架的基础上出现局部刷新效果?
更加简单了,使用Microsoft XMLHTTP这个函数的异步调用方式,关于XMLHTTP的更加详细信息,可以参阅相关信息。其中有关于如何实现异步调用的。另外,在调用时,如果遇到IE缓存问题,可以使用setRequestHeader("If-Modified-Since","0")方式解决(感谢Symbio提供信息),而分析XML,可以使用Microsoft XMLDom来进行。
- 有些Gadget当置放在Sidebar上显示样式是一种,而拖到桌面上会有另外一种显示方式,这是如何实现的?
这个更简单了,查看了下这些Gadget的源代码,可以知道,通过Gadget的System.Gadget.docked的属性可以得到其是否放置在Sidebar上(当为True时,是在Sidebar上),然后再调用JS来对于其CSS特性进行更改即可。
好了,Sidebar Gadget的教程到此结束。非常感谢大家。:)