Atlas学习手记(10):使用AlwaysVisibleControl Extender

AlwaysVisibleControl是AtlasControlToolkit中的一个简单的Extender,用来显示在页面上的一个相对固定位置,随着窗口的滚动和大小改变,它会随着移动,可以用来做浮动广告等。

 

主要内容

1AlwaysVisibleControlExtender介绍

2.完整示例

 

一.AlwaysVisibleControlExtender介绍

AlwaysVisibleControl中的一个简单的Extender,用来显示在页面上的一个相对固定位置,随着窗口的滚动和大小改变,它会随着移动,可以用来做浮动广告等。示例代码如下:

<atlasToolkit:AlwaysVisibleControlExtender ID="avce" runat="server">

    
<atlasToolkit:AlwaysVisibleControlProperties

        
TargetControlID="timer"

        VerticalSide
="Top"

        VerticalOffset
="10"

        HorizontalSide
="Right"

        HorizontalOffset
="10"

        ScrollEffectDuration
=".1" />

</atlasToolkit:AlwaysVisibleControlExtender>

它的属性如下:

属性

说明

TargetControlID

目标控件ID,要浮动的控件

HorizontalOffset

距离浏览器的水平边距,默认值0px

HorizontalSide

水平停靠方向,默认值Left

VerticalOffset

距离浏览器的垂直边距,默认值0px

VerticalSide

垂直停靠方向,默认值Top

ScrollEffectDuration

滚动效果的延迟时间?单位为秒,默认值0.1

二.完整示例

下面看一个完整的AlwaysVisibleControlExtender示例[来自于Atlas官方网站],新建一个Atlas Web Site后,在页面中添加这句:

<%@ Register Assembly="AtlasControlToolkit" Namespace="AtlasControlToolkit" TagPrefix="atlasToolkit" %>

添加ScriptManager

<atlas:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true">

</atlas:ScriptManager>

这里浮动的是一个Panel,需要在页面上始终显示的控件我们都放在该Panel中,这里用一个Div显示了当前的时间:

<asp:Panel ID="timer" runat="server"

    Width
="200px" BackColor="White" ForeColor="Green"

    BorderWidth
="1" BorderStyle="solid" BorderColor="Red" style="z-index: 1;">

    
<div style="width: 100%; height: 100%; vertical-align: middle; text-align: center;">

    
<span>Current Time:</span>             

   
<span id="currentTime" runat="server" style="font-size:x-large;font-weight:bold;line-height:40px;"/>

    
</div>

</asp:Panel>

现在就可以加入主角AlwaysVisibleControlExtender了,并添加AlwaysVisibleControlProperties,设置属性如下:

<atlasToolkit:AlwaysVisibleControlExtender ID="avce" runat="server" >

    
<atlasToolkit:AlwaysVisibleControlProperties

        
TargetControlID="timer"

        VerticalSide
="Top"

        VerticalOffset
="10"

        HorizontalSide
="Right"

        HorizontalOffset
="10"

        ScrollEffectDuration
="0.1" />

</atlasToolkit:AlwaysVisibleControlExtender>

为了演示各个位置的停靠,再加入一个DropDownList

Position: <asp:DropDownList ID="ddlPosition" runat="server" 

    AutoPostBack
="true" OnSelectedIndexChanged="OnChange">

    
<asp:ListItem Text="Default" Selected="true"  Value="None" />

    
<asp:ListItem Text="Top Left" Value="TL" />

    
<asp:ListItem Text="Top Right"  Value="TR" />

    
<asp:ListItem Text="Bottom Left" Value="BL" />

    
<asp:ListItem Text="Bottom Right" Value="BR" />

</asp:DropDownList>

为了选择时不刷新页面,我们再加入一个UpdatePanel

<atlas:UpdatePanel ID="update" runat="server" Mode="Conditional">

    
<ContentTemplate>

       ……

    
</ContentTemplate>

    
<Triggers>                

        
<atlas:ControlEventTrigger ControlID="ddlPosition" EventName="SelectedIndexChanged" />

    
</Triggers>

</atlas:UpdatePanel>

然后编写相关的代码:

protected void Page_Load(object sender, EventArgs e)

{
    
if (!IsPostBack)

    
{
        avce.TargetProperties.Clear();
    }

}


protected void OnChange(object sender, EventArgs e)

{
    
// Change the position to the user's selection

    AlwaysVisibleControlProperties properties 
= avce.GetTargetProperties(timer);

    
switch (ddlPosition.SelectedValue)

    
{
        
case "TL":

            properties.VerticalSide 
= VerticalSide.Top;

            properties.HorizontalSide 
= HorizontalSide.Left;

            
break;

        
case "TR":

            properties.VerticalSide 
= VerticalSide.Top;

            properties.HorizontalSide 
= HorizontalSide.Right;

            
break;

        
case "BL":

            properties.VerticalSide 
= VerticalSide.Bottom;

            properties.HorizontalSide 
= HorizontalSide.Left;

            
break;

        
case "BR":

            properties.VerticalSide 
= VerticalSide.Bottom;

            properties.HorizontalSide 
= HorizontalSide.Right;

            
break;

        
default:

            avce.TargetProperties.Clear();

            
break;
    }

}

编写JS代码控制时间的更新:

<script type="text/javascript" language="javascript">

    updateTime();

    window.setInterval(updateTime, 
1000);

    
function updateTime()

    
{

        
var label = document.getElementById("currentTime");

        
if (label) {

            label.innerText 
= (new Date()).toLocaleTimeString();

        }


    }


</script>

至此整个示例就完成了,编译运行:

Top Right:

Bottom Right:

Bottom Left:

完整示例下载:http://www.cnblogs.com//Files/Terrylee/AlwaysVisibleControlDemo.rar

作者:TerryLee
出处:http://terrylee.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted @ 2006-08-01 14:40 TerryLee 阅读(4061) 评论(30)  编辑 收藏 网摘 所属分类: [08]  Web开发

  回复  引用  查看    
#1楼 2006-08-01 14:12 | aspnetx      
期待正式版本发布
呵呵,也好期待asp.net3.0
按照经验来说那才是正式能用的版本
就想asp一样
但可别象asp3那样没4了
  回复  引用  查看    
#2楼 [楼主]2006-08-01 14:20 | TerryLee      
@aspnetx

使用Atlas现在应该没有什么大问题,也有很多人在项目中使用

但是据说AtlasControlToolkit不太稳定:-)
  回复  引用    
#3楼 2006-08-01 15:18 | 随风.NET [未注册用户]
支持
等了好久才出来哦
呵呵 一大早就老是来看了
  回复  引用  查看    
#4楼 [楼主]2006-08-01 15:26 | TerryLee      
@随风.NET

呵呵,最近打算把AtlasControlToolkit先学一下,然后再看其他部分
  回复  引用  查看    
#5楼 2006-08-01 16:20 | aspnetx      
“Atlas” July CTP Release
http://atlas.asp.net/default.aspx?tabid=47&subtabid=471
好期待正式版的发布啊

关于AtlasControlToolkit,我很欣赏那种extender的模式,确实很方便呵呵
  回复  引用  查看    
#6楼 [楼主]2006-08-01 16:38 | TerryLee      
@aspnetx

我现在使用的就是“Atlas” July CTP Release 版本
  回复  引用  查看    
#7楼 2006-08-01 17:19 | aspnetx      
@TerryLee
继续关注你的系列
  回复  引用  查看    
#8楼 [楼主]2006-08-01 17:26 | TerryLee      
@aspnetx

呵呵,共同学习吧:-)
  回复  引用    
#9楼 2006-08-01 18:14 | 随风.NET [未注册用户]
楼主 能不能做个修改信息时是关机灰屏样的效果呢?
给个例子学习下吧 呵呵
  回复  引用  查看    
#10楼 2006-08-01 19:51 | aspnetx      
@随风.NET
atlas.asp.net上有这个例子吧
看上去确实很绚
  回复  引用    
#11楼 2006-08-01 21:54 | 随风.Net [未注册用户]
麻烦下大哥了 你写个例子教下吧

我真的很想学^^



  回复  引用    
#12楼 2006-08-01 21:55 | 随风.Net [未注册用户]
@aspnetx
AtlasControlToolkit 这个我装的ATLAS里面怎么没有啊
下载的文件里也没DLL
  回复  引用  查看    
#13楼 [楼主]2006-08-02 08:04 | TerryLee      
@随风.NET

今天就可以提供这个例子了:-)
  回复  引用    
#14楼 2006-08-02 09:19 | Simons [未注册用户]
非常感谢楼主
支持楼主
  回复  引用  查看    
#15楼 [楼主]2006-08-02 09:25 | TerryLee      
@Simons

呵呵,不用客气:-)
  回复  引用    
#16楼 2006-08-02 09:27 | 随风.NET [未注册用户]
@TerryLee
谢谢楼主
狂支持!!!


  回复  引用    
#17楼 2006-08-02 09:33 | Simons [未注册用户]
顺便问一下楼主:

我用的是6月的CTP版本,如何升级到July CTP呢?
我在官方网站上面 没有找到如何升级就的版本 只看到Step by Step Install
3ks
  回复  引用  查看    
#18楼 [楼主]2006-08-02 09:42 | TerryLee      
@Simons

不用升级吧,说是June CTP版本,其实发布的时候已经到了July,呵呵。所以也不知道到底是June CTP还是July CTP。
  回复  引用  查看    
#19楼 2006-08-02 10:20 | 姜翊华      
请问Src中的avce是什么,非常感谢
  回复  引用  查看    
#20楼 [楼主]2006-08-02 10:44 | TerryLee      
@姜翊华
请看:
<atlasToolkit:AlwaysVisibleControlExtender ID="avce" runat="server" >
  回复  引用    
#21楼 2006-08-02 17:34 | ugvanx [未注册用户]
InPlaceConfigurationSource source = new InPlaceConfigurationSource();
这个InPlaceConfigurationSource 要引用哪个命名空间。
  回复  引用  查看    
#22楼 [楼主]2006-08-03 12:33 | TerryLee      
@ugvanx

Castle.ActiveRecord.Framework.Config
  回复  引用    
#23楼 2006-08-31 09:55 | zyq22 [未注册用户]
AtlasControlToolkit 这个我装的ATLAS里面怎么没有啊
下载的文件里也没DLL
请问怎么解决!谢谢!
  回复  引用  查看    
#24楼 [楼主]2006-08-31 09:57 | TerryLee      
@zyq22
AtlasControlToolkit需要单独下载

http://atlas.asp.net/atlastoolkit
  回复  引用  查看    
#25楼 2006-09-07 10:34 | 逄瑞锋      
TerryLee出品,必属精品。
  回复  引用  查看    
#26楼 [楼主]2006-09-07 17:26 | TerryLee      
@逄瑞锋
呵呵,过奖了,谢谢支持:-)
  回复  引用  查看    
#27楼 2006-10-19 13:42 | 金鑫      
<atlasToolkit:AlwaysVisibleControlExtender ID="fce" runat="server" >
<atlasToolkit:AlwaysVisibleControlProperties ……>
……
</atlasToolkit:AlwaysVisibleControlExtender>
AlwaysVisibleControlExtender 不是已知元素
这个是什么错!



  回复  引用  查看    
#28楼 [楼主]2006-10-19 20:03 | TerryLee      
@金鑫
下载最新版本试试
  回复  引用    
#29楼 2007-01-17 00:32 | snyod [未注册用户]
代表党(.NET平台)感谢您.
全部收藏...........




标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-08-15 08:04 编辑过
Google站内搜索

相关文章:

相关链接: