Coolite(四):容器控件之FiledSet、Panel和Window

一、FieldSet控件
     FieldSet控件在开发中使用率还是很高的,毕竟Web中微软没有提供Group控件,通常都是使用FieldSet来进行 表单界面布局分组。在 Coolite Toolkit中则专门提供了这样一个控件,同时还为其附加了很多其他的功能属性和方法。
< ext:FieldSet ID ="FieldSet1" runat ="server" Collapsible ="True" Height ="200px" Title ="FieldSet分组" Width ="200px" >
< Body >
< table border ="0" cellpadding ="0" cellspacing ="0" >
< tr >
< td > 日期: </ td >
< td >
< ext:DateField ID ="DateField2" runat ="server" />
</ td >
</ tr >
</ table >
</ Body >
</ ext:FieldSet >


      Title、Height以及Width这些最基本的属性完全可以不去记忆,Collapsible属性是用来设置FieldSet是可折叠 状态。上面代码片段的远行效果如下所示:
                  
二、Panel控件
      前面分析了FieldSet控件,可以用来做界面布局的分组,以及通过相关属性设置使其成为更为高级的应用操作。FieldSet所具备的这些特性对于Panel来说也是同样具备的。在ASP.NET里也提供得有Panel控件,那么Coolite Toolit所提供的相比ASP.NET里的Panel有什么特色呢?呵呵,特色可多了,请你继续看下面......
       Panel控件我个人理解就是一个容器控件,不用它我自己随便通过一个html标签然后设置其runat="server"一样的可以达到等同的效果。Coolite Toolkit所提供的Panel同样如此,只是他在ASP.NET的Panel基础上扩展了一些常用的功能点,包括 动态设值,外嵌其他的Web也面等多项功能。
<%--<ext:Panel ID="Panel2" runat="server" Height="300" Title="Title">--%>
< ext:Panel ID ="Panel1" runat ="server" Height ="300" Title ="Title"
    Collapsible
="true" Width ="300" >
< Body >
</ Body >
</ ext:Panel >

      同FieldSet控件一样直接提供了公开属性设置是否允许折叠。如上html代码片段,在<body>标签里可以放置我们需要在界面上呈现是元素,除此之外它还提供了一个属性(Html),通过该属性也可以设置其 显示内容,如下:
< ext:Panel ID ="Panel2" runat ="server" Height ="100" Title ="Title"
    Collapsible
="true" Width ="300" Html ="<h5>通过HTML属性设置其显示的内容</h5>" >
</ ext:Panel >

      在使用该控件的时候需要注意,虽然<body>标签和Html属性都可以设置控件所呈现的内容,但是这里有一定的约束,<body>标签和Html属性不能同时使用。
                  
      通过属性设置其要呈现的内容,控件还提供了属性用来设置其将自动加载的 数据(比如一个 页面,类似与IFrame的功能)。
< ext:Panel ID ="Panel3" runat ="server" Height ="100" Width ="400" Title ="Title" >
< Body >
</ Body >
</ ext:Panel >
< script type ="text/C#" runat ="server" >
    protected void Page_load(object sender, EventArgs e)
    {
        this.Panel3.AutoLoad.Url =
"http://beniao.cnblogs.com";
        this.Panel3.AutoLoad.NoCache =
true;
    }
</ script >

< ext:Panel ID ="Panel3" runat ="server" Height ="125px" Title ="自动加载内容"
    Width
="400px"   Collapsible ="true" >
< Body >
</ Body >
< AutoLoad Url ="http://beniao.cnblogs.com" ></ AutoLoad >
</ ext:Panel >

      除了上面的实现方式外,也可以通过公开的方法LoadContent()实现动态加载一个页面呈现出来。
protected void Page_load( object sender, EventArgs e)
{
   
this .Panel3.LoadContent( " http://beniao.cnblogs.com " , true );
}


      前面提到 iframe,这个东西在我们平时开发中的使用率也是非常高的,Coolite Toolkit那当然也不会遗忘他的存在,对Panel控件也提供了iframe的支持,Panel控件加载一个外部 web页面也是可以以iframe的形式呈现的。
protected void Page_load( object sender, EventArgs e)
{
   
this .Panel3.AutoLoad.Url = http://beniao.cnblogs.com/ ;
   
this .Panel3.AutoLoad.Mode = LoadMode.IFrame;
   
this .Panel3.AutoLoad.NoCache = true ;
}


      同样可以在LoadContent()方法中设置加载 模式
this .Panel3.LoadContent( new LoadConfig( " http://beniao.cnblogs.com " , LoadMode.IFrame, true ));

      除了上述特性,Coolite Toolkit的Panel的折叠展开功能也有他独有的特性,通过Listeners可以设置让其在展开的时候加载指定的Web页面,折叠的时候清除内容。
< ext:Panel ID ="Panel4" runat ="server" Title ="展开时加载|折叠时清除" Width ="300" Height ="100" Collapsible ="true" >
< AutoLoad Url ="http://www.cnblogs.com" Mode ="IFrame" NoCache ="true" ShowMask ="true" MaskMsg ="正在加载" />
< Listeners >
< Expand Handler ="this.reload();" />
< Collapse Handler ="this.clearContent();" />
</ Listeners >
</ ext:Panel >

                  

三、Window控件
      窗体(Window)控件,这个控件多数时候是应用在做弹窗效果。很简单的说,我点一下按扭或是其他可同事件驱动的 组件,立马给我弹出一个窗口出来,Window控件可以说是专门来解决这一技术需求。
< ext:Window ID ="Window1" runat ="server" Collapsible ="true" Icon ="Application"
    Title
="Title" >
< body ></ body >
</ ext:Window >

      直接从工具箱里拖拽一个Window控件到界面上,默认是可折叠、可关闭且随着页面的加载而显示的。可以通过设置ShowOnLoad="false|true"属性使其在页面加载的时候显示与否。
      在需要显示的时候可以通过调用其客户端API接口,也可以调用服务端API接口实现。
< ext:Window ID ="Window1" runat ="server" Collapsible ="true" Icon ="Application"
    Title
="Title" ShowOnLoad ="false" >
< body ></ body >
< Listeners >
< Hide Handler ="this.clearContent();" />
</ Listeners >
</ ext:Window >
< ext:Button ID ="btnShowWindow" runat ="server" Text ="显示Window" >
< Listeners >
<%--<Click Handler="#{Window1}.show();"
/>--%>
</ Listeners >
< AjaxEvents >
< Click OnEvent ="Show_Window" ></ Click >
</ AjaxEvents >
</ ext:Button >
< script type ="text/C#" runat ="server" >
    protected void Show_Window(object sneder, AjaxEventArgs e)
    {
        this.Window1.Show();
    }
</ script >

      Window控件我个人理解他也是一个容器控件,只不过他比其他的控件使用更为灵活,功能更强大,比如动态显示和隐藏(Show,Hide)、可拖拽性(Draggable)、摸态(Modal)等。
< ext:Window ID ="Window1" runat ="server" Collapsible ="true" Icon ="Application" Width ="300"
    Draggable
="false" Modal ="true" Title ="摸态|不可拖拽应用示例" ShowOnLoad ="false" >
< body >
        摸态|不可拖拽应用示例
< br />
        不可拖拽:Draggable="false"
< br />
        摸态:Modal="true"
< br />
</ body >
< Listeners >
< Hide Handler ="this.clearContent();" />
</ Listeners >
</ ext:Window >
< ext:Button ID ="btnShowWindow" runat ="server" Text ="显示Window" >
< Listeners >
<%--<Click Handler="#{Window1}.show();"
/>--%>
</ Listeners >
< AjaxEvents >
< Click OnEvent ="Show_Window" ></ Click >
</ AjaxEvents >
</ ext:Button >
< script type ="text/C#" runat ="server" >
    protected void Show_Window(object sneder, AjaxEventArgs e)
    {
        this.Window1.Show();
        //this.Window1.Hide();
    }
</ script >

转载于:https://www.cnblogs.com/hendy/archive/2010/04/12/1710379.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于extjs的.NET3.5控件Coolite 1.0.0.34580 (Preview预览版), *************************************************** * Version 1.0.0 升级日志 * *************************************************** 1. Renamed Coolite.Ext.Web project to Ext.Net 2. Renamed Coolite.Examples project to Ext.Net.Examples 3. Renamed Coolite.Ext.UX project to Ext.Net.UX 4. Renamed Coolite.EmbeddedResourceBuilder project to Ext.Net.ERB 5. Renamed Coolite.Utilities project to Ext.Net.Utilities 6. Renamed Coolite.Sandbox project to Ext.Net.Sandbox 7. Renamed Coolite.Toolkit.sln Visual Studio Solution file to Ext.Net.sln. 8. Renamed Coolite.Ext.Web Namespace to Ext.Net 9. Renamed Coolite.Utilities Namespace to Ext.Net.Utilities 10. Renamed Coolite.Ext.UX Namespace to Ext.Net.UX 11. Renamed root singleton "Ext" class to "X". Example (Old) if (!Ext.IsAjaxRequest) { } Ext.Msg.Alert("Title", "Message").Show(); Example (New) if (!X.IsAjaxRequest) { } X.Msg.Alert("Title", "Message").Show(); 12. Added new feature to get server-side Property values from client id Token strings. Example 13. Renamed WebControl class to ExtControl. As well, renamed Coolite.Ext.Web.WebControl.cs file to Ext.Net.ExtControl.cs. 14. Removed . Please use . 15. Removed . Please use . 16. Renamed AjaxMethod class to DirectMethod. 17. Renamed AjaxMethodAttribute to DirectMethodAttribute. Example (Old) [AjaxMethod] public void DoSomthing() { } Example (New) [DirectMethod] public void DoSomthing() { } 18. Renamed property to . 19. Removed . Please use . 20. Removed Adapter class 21. Removed ColorMenuItem class 22. Removed ComboMenuItem class 23. Removed DateFieldMenuItem class 24. Removed D
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值