CollapsiblePanel:可折叠的面板

CollapsiblePanel可以让页面中的某个区域变得可折叠,即用户可以根据喜好展开或折叠其中的内容。
示例运行效果:

图(1)

图(2)

CollapsiblePanel.aspx代码示例:
<% @ Page Language="C#" AutoEventWireup="true" CodeFile="CollapsiblePanel.aspx.cs" Inherits="Chapter08_CollapsiblePanel"  %>

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >

< html  xmlns ="http://www.w3.org/1999/xhtml"   >
< head  runat ="server" >
    
< title > CollapsiblePanel Demo </ title >
    
< link  href ="stylesheet.css"  rel ="stylesheet"  type ="text/css"   />
    
< style  type ="text/css" >
        .collapsePanel 
        
{
            background-color
:white;
            overflow
:hidden;
        
}


        .collapsePanelHeader
        
{    
            width
:100%;        
            height
:30px;
            background-image
: url(images/bg-menu-main.png);
            background-repeat
:repeat-x;
            color
:#FFF;
            font-weight
:bold;
        
}


        #master_content .collapsePanelHeader a 
{color:#FFF;}
        #master_content .collapsePanelHeader a:hover 
{text-decoration:none;background:none;}
    
</ style >
</ head >
< body >
    
< form  id ="CollapsiblePanelForm"  runat ="server" >
        
< asp:ScriptManager  ID ="sm"  runat ="server"   />
        
< div  class ="demoheading" > 可折叠的面板 </ div >
        
        
< asp:Panel  ID ="Panel2"  runat ="server"  CssClass ="collapsePanelHeader"  Height ="30px"  Width ="500px" >  
            
< div  style ="padding:5px; cursor: pointer; vertical-align: middle;" >
                
< div  style ="float: left;" > What is ASP.NET AJAX? </ div >
                
< div  style ="float: left; margin-left: 20px;" >
                    
< asp:Label  ID ="Label1"  runat ="server" > (Show Details...) </ asp:Label >
                
</ div >
                
< div  style ="float: right; vertical-align: middle;" >
                    
< asp:ImageButton  ID ="Image1"  runat ="server"  ImageUrl ="images/expand_blue.jpg"  AlternateText ="(Show Details...)" />
                
</ div >
            
</ div >
        
</ asp:Panel >
        
< asp:Panel  ID ="Panel1"  runat ="server"  CssClass ="collapsePanel"  Height ="0"  Width ="500px" >
            
< br  />
            
< p >
                
< asp:ImageButton  ID ="Image2"  runat ="server"  ImageUrl ="images/AJAX.gif"
                    AlternateText
="ASP.NET AJAX"  ImageAlign ="right"   />
                    ASP.NET AJAX is a free framework for building a new generation of richer, 
                    more interactive, highly personalized cross-browser web applications. 
                    This new web development technology from Microsoft integrates cross-browser 
                    client script libraries with the ASP.NET 2.0 server-based development framework. 
                    In addition, ASP.NET AJAX offers you the same type of development platform for 
                    client-based web pages that ASP.NET offers for server-based pages. 
                    And because ASP.NET AJAX is an extension of ASP.NET, it is fully integrated with 
                    server-based services. ASP.NET AJAX makes it possible to easily take advantage of 
                    AJAX techniques on the web and enables you to create ASP.NET pages with a rich, 
                    responsive UI and server communication.However, AJAX isn't just for ASP.NET. 
                    You can take advantage of the rich client framework to easily build client-centric 
                    web applications that integrate with any backend data provider and run on most modern browsers. 
            
</ p >
        
</ asp:Panel >
        
       
< ajaxToolkit:CollapsiblePanelExtender  ID ="cpeDemo"  runat ="Server"
        TargetControlID
="Panel1"
        ExpandControlID
="Panel2"
        CollapseControlID
="Panel2"  
        Collapsed
="True"
        TextLabelID
="Label1"
        ImageControlID
="Image1"     
        ExpandedText
="(Hide Details...)"
        CollapsedText
="(Show Details...)"
        ExpandedImage
="images/collapse_blue.jpg"
        CollapsedImage
="images/expand_blue.jpg"
        SuppressPostBack
="true"   />
        
<!--
            TargetControlID:该扩展器目标控件ID,即将要实现折叠、展开功能的控件的ID
            ExpandControlID:指定一个服务器控件的ID,当用户点击该控件时,该扩展器的目标Panel控件将展开
            CollapseControlID:指定一个服务器控件的ID,当用户点击该控件时,该扩展器的目标Panel控件将折叠
            Collapsed:目标Panel控件的初始化状态,true代表折叠,false代表展开
            TextLabelID:指定一个服务器Label控件的ID,用来显示此时目标Panel控件的折叠/展开状态
            ImageControlID:指定一个服务器端Image控件的ID,用来告知用户此时目标Panel控件的折叠、展开状态
            ExpandedText:当目标Panel控件为展开状态时,TextLabelID属性所指定的Label控件中的文字
            CollapsedText:当目标Panel控件为折叠时,TextLabelID属性所指定的Label控件中的文字
            ExpandedImage:当目标Panel控件为展开状态时,ImageControlID属性所指定的Image控件中图片的URL
            CollapsedImage:当目标Panel控件为折叠状态时,ImageControlID属性所指定的Image控件中图片的URL
        
-->
    
</ form >
</ body >
</ html >

好的,我可以为您提供一个简单的React组件,该组件使用Antd的Collapse面板实现折叠面板,并允许用户添加或删除面板。 首先,我们需要安装React和Antd库: ``` npm install react antd ``` 然后,我们可以创建一个叫做"CollapsiblePanel"的组件: ``` import React, { useState } from "react"; import { Collapse, Button } from "antd"; const { Panel } = Collapse; const CollapsiblePanel = () => { const [panels, setPanels] = useState([]); const handleAddPanel = () => { setPanels([...panels, `Panel ${panels.length + 1}`]); }; const handleRemovePanel = (index) => { const newPanels = [...panels]; newPanels.splice(index, 1); setPanels(newPanels); }; return ( <div> <Button onClick={handleAddPanel}>Add Panel</Button> <Collapse> {panels.map((panel, index) => ( <Panel header={panel} key={index}> <Button onClick={() => handleRemovePanel(index)}>Remove</Button> </Panel> ))} </Collapse> </div> ); }; export default CollapsiblePanel; ``` 在这个组件中,我们使用useState钩子来追踪当前面板的列表。当用户点击"Add Panel"按钮时,我们使用setPanels更新面板列表。每个面板都可以包含一个"Remove"按钮,用来删除该面板。我们通过使用map函数,将每个面板的信息渲染为一个Antd Collapse.Panel组件。 最后,我们可以在我们的应用程序中使用CollapsiblePanel组件: ``` import React from "react"; import ReactDOM from "react-dom"; import CollapsiblePanel from "./CollapsiblePanel"; ReactDOM.render(<CollapsiblePanel />, document.getElementById("root")); ``` 这将在您的应用程序中呈现一个包含"Add Panel"按钮和可折叠面板的组件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值