• Ajax Control Toolkit使用实例 (2) Accordion


    Accordion控件简介

    Accordion控件可以让你同时展示多个可折叠的数据面板,但同一时刻只能有一个被展开。Accordion控件包含了多个AccordionPane控件来实现其功能,每个AccordionPane都有独立的Header和Content数据域。我们跟踪被选中面板的状态并通过回发来控制其是否展开显示。

    如何将Ajax Control Tookit添加到设计模式下的工具箱以及如何获取此控件相关的帮助信息,请参见上一篇文章Ajax Control Toolkit使用实例(1) AutoCompleteExtender,这里不再赘述。

    Accordion控件的使用

    有了前一篇文章作铺垫,后续的操作就变得很简单了。

    1.在Web.Config中注册控件集;

    在<system.web>结点下添加<pages>配置节:

    <pages>
      <controls>
        <add tagPrefix="asp" assembly="AjaxControlToolkit" namespace="AjaxControlToolkit"/>
      </controls>
    </pages>

    当然你也可以在单个页面使用@Register指令进行控件注册,如果使用此方式,那么你需要在每个调用Ajax控件的页面都进行控件注册。

    2.添加ToolkitScriptManager控件;

    3.添加SqlDataSource控件并作相应的配置使其充当数据源,以便进行数据绑定;

    4.添加Accordion控件,进行数据绑定,并对绑定模板进行样式设置等。

    为了能让绑定项看起来美观一些,我们可以对面板的头和内容模板的样式进行控制,下面是我在示例中使用的样式:

    <style type="text/css">
        .accordionHeader
        {
            background-color: #537368;
            border: 1px solid #537368;
            color: white;
            cursor: pointer;
            font-family: Arial,Sans-Serif;
            font-size: 12px;
            font-weight: bold;
            margin-top: 5px;
            padding: 5px;
        }
        
        .accordionHeaderSelected
        {
            background-color: #65867B;
            border: 1px solid #2F4F4F;
            color: white;
            cursor: pointer;
            font-family: Arial,Sans-Serif;
            font-size: 12px;
            font-weight: bold;
            margin-top: 5px;
            padding: 5px;
        }
        
        .accordionContent
        {
            -moz-border-bottom-colors: none;
            -moz-border-image: none;
            -moz-border-left-colors: none;
            -moz-border-right-colors: none;
            -moz-border-top-colors: none;
            background-color: #D3DEEF;
            border-color: -moz-use-text-color #2F4F4F #2F4F4F;
            border-right: 1px dashed #2F4F4F;
            border-style: none dashed dashed;
            border- medium 1px 1px;
            padding: 10px 5px 5px;
        }
    </style>

    这里为了方便演示,使用SqlDataSource进行了前端数据绑定,大家可以通过后台数据绑定(可枚举的数据列表均可作为数据源)来控制数据的展示,以便加入分页等操作。下面是此示例的前台页面源,相当简单:


    <asp:ToolkitScriptManager runat="server" ID="asm" />
    <asp:SqlDataSource runat="server" ID="asds1" ConnectionString="Data Source=.;Initial Catalog=Northwind;Integrated Security=true;" ProviderName="System.Data.SqlClient" SelectCommand="Select top 10 * from Customers"></asp:SqlDataSource>
    <asp:Accordion runat="server" ID="acc1" HeaderCssClass="accordionHeader" HeaderSelectedCssClass="accordionHeaderSelected"
    ContentCssClass="accordionContent" DataSourceID="asds1">
        <HeaderTemplate>
            <%#DataBinder.Eval(Container.DataItem, "[CompanyName]")%>
        </HeaderTemplate>
        <ContentTemplate>
            <span style="font-weight: bold">[ContactName]:</span><%#DataBinder.Eval(Container.DataItem, "[ContactName]")%><br />
            <span style="font-weight: bold">[ContactTitle]:</span><%#DataBinder.Eval(Container.DataItem, "[ContactTitle]")%><br />
        </ContentTemplate>
    </asp:Accordion>

    最终的效果如下图:

    image

    本文演示所用的数据库是微软的演示库Northwind,此数据库的生成脚本请大家自行百度眨眼

  • 相关阅读:
    linux清理内存
    华为代码注释标准
    Spring缓存机制的理解
    jQuery实现动态分割div—通过拖动分隔栏实现上下、左右动态改变左右、上下两个相邻div的大小
    模仿iframe框架,由分隔栏动态改变左右两侧div大小———基于jQuery
    js实现由分隔栏决定两侧div的大小—js动态分割div
    java基于socket的简单聊天系统
    中国移动归属地区号大全
    将本地光盘做成yum源
    windows下设置计划任务自动执行PHP脚本
  • 原文地址:https://www.cnblogs.com/gb2013/p/ajaxcontroltoolkit_accordion.html
Copyright © 2020-2023  润新知