细数Ajax Control Toolkit 34个控件(一)

添加人:admin三级(978分)   添加时间:2007-07-19    阅读次数:4922  收藏此教程
1. Accordion
 
【功能概述】
Accordion可以让你设计多个panel 并且一次只显示一个Panel .在页面上的显示效果就像是使用了多个CollapsiblePanels只不过每一次只展开其中一个CollapsiblePanel.Accordion控件内部包含了若干个AccordionPane,每一个AccordionPane的template里包括了对其Header和Content的定义。我们可以在后台代码中通过SelectedIndex属性取得当前展开的哪一个Panel,还可以控制哪一个Panel展开。
经常可以见到类似的效果,比如QQ、Msn好友分类的折叠效果。
 
【细节】
(1) 不要把Accordion放在Table中而又把 FadeTransitions 设置为True,这将引起布局混乱
(2) 在AccordionPane模板中的Content中可以定义任何Web元素,表现的就像一个容器
(3) AccordionPane内容模板自动改变大小有三种AutoSize modes :None(推荐) Limit  Fill
(4) $find('ctl00_ContentPlaceHolder1_MyAccordion_AccordionExtender')这里找到的是Behavior.什么是Behavior呢?在Asp.net Ajax框架中包含一组动作并完成一个功能. Accordion的一个Behavior就是淡入淡出.找到Behavior的引用,behavior.set_FadeTransitions()  behavior.get_FadeTransitions()的方式来实现具体某一个Behavior的访问和修改.var behavior = $find('ctl00_SampleContent_MyAccordion_AccordionExtender');这种写法是不好的,我们在自动测试的页面中发现了更好的写法:var behavior=$find("<%= MyAccordion.ClientID %>_AccordionExtender");
 1<script language="javascript" type="text/javascript">
 2    function toggleFade() {
 3        var behavior = $find('ctl00_ContentPlaceHolder1_MyAccordion_AccordionExtender');
 4        if (behavior) {
 5            behavior.set_FadeTransitions(!behavior.get_FadeTransitions());
 6        }

 7    }

 8    function changeAutoSize() {
 9        var behavior = $find('ctl00_ContentPlaceHolder1_MyAccordion_AccordionExtender');
10        var ctrl = $get('autosize'); //这里找的是下拉列表控件,不是Behavior
11        if (behavior) {
12            var size = 'None'; // 这里顺便看看怎么使用Select
13            switch (ctrl.selectedIndex) {
14                case 0 :
15                    behavior.get_element().style.height = 'auto';
16                    size = AjaxControlToolkit.AutoSize.None;
17                    break;
18
19                case 1 :
20                    behavior.get_element().style.height = '400px';
21                    size = AjaxControlToolkit.AutoSize.Fill;
22                    break;
23                case 2 :
24                    behavior.get_element().style.height = '400px';
25                    size = AjaxControlToolkit.AutoSize.Limit;
26                    break;
27            }

28            behavior.set_AutoSize(size);
29        }

30        if (document.focus) {
31            document.focus();
32        }

33    }

34
</script>
35
36<ajaxToolkit:Accordion ID="MyAccordion" runat="server" SelectedIndex="0" HeaderCssClass="accordionHeader"
37    ContentCssClass="accordionContent" FadeTransitions="false" FramesPerSecond="40"
38    TransitionDuration="250" AutoSize="None">
39    <Panes>
40        <ajaxToolkit:AccordionPane ID="AccordionPane1" runat="server">
41            <Header>
42                <a href="" onclick="return false;" class="accordionLink">1. Accordion</a></Header>
43            <Content>
44            </Content>
45        </ajaxToolkit:AccordionPane>
46    </Panes>
47</ajaxToolkit:Accordion> 
 
2. AlwaysVisibleControl
 
【功能概述】
AlwaysVisibleControl 是一个简单的扩展控件可以让一部分内容浮动在页面上,当滚动页面或者改变浏览器大小时总是可见的。它可以扩展任意一个Asp.net 控件,并可按照要求设置水平 竖直方向上的相对距离.
最多的应用是在线阅读的目录和不胜其烦的浮动小广告。
 
【细节】
(1) 避免控件闪烁,要扩展的控件要使用absolutely position
(2) HorizontalSide="Center" VerticalSide="Top" 使用这个方式控制浮动的位置
(3) Var label = ocument.getElementById('ctl00_SampleContent_currentTime');这行代码我们可以使用更简单的方法:var label = $get('ctl00_SampleContent_currentTime');
 
【代码示意】
<cc1:AlwaysVisibleControlExtender ID="AlwaysVisibleControlExtender1" HorizontalSide="Center" VerticalSide="Top"  TargetControlID="Panel1" runat="server">

 
1页 第1上一页1下一页
相关的教程: Ajax Control Toolkit
收藏此教程 到论坛求助

当前平均分: 1.3(6 次打分)

012345678910
评论主题
您的大名
您的评论
验证码 点击换一个验证码
知识库搜索: