当前位置:首页 > CN2资讯 > 正文内容

windows10下如何关闭 Hive

3天前CN2资讯

前言

FineUI中的Window控件常用作选择、新增或编辑内容。而关闭Window控件却有很多技巧,了解这些技巧有助于项目的快速开发。

如何关闭Window控件

第一个问题就是如何关闭Window控件,最明显的方式就是右上角的关闭图标了。总的说来,有三种方式:

  • ESC按键(在Window控件所在页面获取焦点的情况下,按下键盘的ESC将会关闭当前激活窗体)
  • 窗体右上角的关闭图标
  • 用户自定义的关闭按钮
  • 前两种方式自不必说,那么如何自定义关闭按钮呢?有两种做法:

  • 按钮禁用回发,在页面初始化时注册关闭脚本
  • 1 <f:Button ID="btnHideInClient" CssClass="inline" Text="隐藏窗体(客户端代码)" EnablePostBack="false" 2 runat="server"> 3 </f:Button>1 protected void Page_Load(object sender, EventArgs e) 2 { 3 if (!IsPostBack) 4 { 5 btnHideInClient.OnClientClick = Window2.GetHideReference(); 6 } 7 } 8
  • 按钮回发,在回发事件中设置窗体Hidden属性,
  • 1 <f:Button ID="btnHideInServer" Text="隐藏窗体(服务端代码)" runat="server" OnClick="btnHideInServer_Click"> 2 </f:Button>1 protected void btnHideInServer_Click(object sender, EventArgs e) 2 { 3 Window2.Hidden = true; 4 }

    或者注册关闭脚本:

    1 protected void btnHideInServer_Click(object sender, EventArgs e) 2 { 3 PageContext.RegisterStartupScript(Window2.GetHideReference()); 4 }

     当然,这里按钮是和Window控件在同样一个页面的。

    对于另一种常见情况,也即启用IFrame的Window控件,位于IFrame页面内的按钮如何关闭父页面中的这个Window控件呢?

    显然,我们无法在IFrame页面内获取Window控件的实例!

    没关系,FineUI提供了ActiveWindow类来处理这个常见问题:

    1 protected void btnSaveContinue_Click(object sender, EventArgs e) 2 { 3 PageContext.RegisterStartupScript(ActiveWindow.GetHideReference()); 4 }

     

    关闭窗体的方式

    前面提到的关闭窗体,只是简单的关闭,并未做任何其他处理。其实FineUI提供了三种关闭窗体的方式:

  • 直接关闭:也就是前面提到的 GetHideReferene 方法返回的脚本
  • 关闭窗体,然后回发窗体所在的页面,触发Window控件的Close事件:可以使用内置的 GetHidePostBackReference 方法
  • 关闭窗体,然后刷新窗体所在的页面:可以使用内置的 GetHideRefreshReference 方法
  • 再回到前面介绍的"如何关闭窗体",显然前两种关闭方法(ESC,右上角关闭图标)无法使用 GetHide***Reference 方法,怎么办?

    FineUI同时为Window控件提供了 CloseAction 属性,可能的值为 Hide,HidePostBack 和 HideRefresh,分别对应上述方法。

    来看一个例子:

  • 初始显示
  • 点击右上角关闭图标,触发了Close事件

    这个行为是由Window控件的CloseAction属性控制的,来看下控件标签:
  • 1 <f:Window ID="Window2" Width="650px" Height="300px" Icon="TagBlue" Title="窗体" Hidden="true" 2 EnableMaximize="true" EnableCollapse="true" runat="server" EnableResize="true" 3 IsModal="false" CloseAction="HidePostBack" OnClose="Window2_Close" Layout="Fit"> 4 </f:Window>

    后台的事件处理代码:

    1 protected void Window2_Close(object sender, WindowCloseEventArgs e) 2 { 3 Alert.ShowInTop("窗体被关闭了。参数:" + (String.IsNullOrEmpty(e.CloseArgument) ? "无" : e.CloseArgument)); 4 }

    CloseAction无法定义返回参数,所以这里显示"无"!

  • 点击页面上的"隐藏窗体,带回发参数",触发了Close 事件,此时的页面显示

    这个按钮的响应脚本是在页面初始化时注册的,如下所示(注意参数是如何设进去的):
  • 1 protected void Page_Load(object sender, EventArgs e) 2 { 3 if (!IsPostBack) 4 { 5 btnHideInClient2.OnClientClick = Window2.GetHidePostBackReference("btnHideInClient2"); 6 } 7 }

     同样,对于启用IFrame的Window控件,其IFrame内按钮的关闭窗体处理,对应于ActiveWindow的几个方法:

  • ActiveWindow.GetHideReference
  • ActiveWindow.GetHidePostBackReference
  • ActiveWindow.GetHideRefreshReference
  •  

    关闭窗体的确认对话框

    这个特性可能很多人都不知道,不过存在很强的实用性。

    简单描述:启用IFrame的Window控件,如果IFrame页面内任意表单字段发生改变,则在关闭窗体时弹出确认框。

    目的是防止用户在输入表单内容后,还没来的及保存,一个误操作把弹出窗体关了。

  • 页面初始显示
  • 在"数字输入框"内输入任意值,然后点击右上角的关闭图标,弹出确认对话框
  • 清空 "数字输入框"内的值(也即是还原到其初始状态),然后点击右上角的关闭图标,则直接关闭窗体
  •  上述操作是由Window控件的 EnableConfirmOnClose 属性控制(默认为false),下面是这个Window实例的标签定义:

    1 <f:Window ID="Window1" Hidden="true" EnableIFrame="true" runat="server" EnableConfirmOnClose="true" 2 EnableMaximize="true" EnableResize="true" Height="450px" Width="800px" Title="窗体一"> 3 </f:Window>

     

    对于上述页面中的"关闭"按钮,行为和右上角的关闭图标一致,不过这种一致性也是认为控制的,来看看"关闭"按钮的脚本:

    1 protected void Page_Load(object sender, EventArgs e) 2 { 3 if (!IsPostBack) 4 { 5 btnClose.OnClientClick = ActiveWindow.GetConfirmHideReference(); 6 } 7 }

     

    本章小结

    本篇文章介绍了三种关闭Window控件的方法(ESC、关闭图标、自定义),以及三种FineUI定义的处理方式(隐藏、隐藏后回发、隐藏后刷新)。对于IFrame内的关闭按钮,FineUI提供了ActiveWindow来生成关闭脚本。同时还介绍了一个FineUI内置的属性 EnableConfirmOnClose ,用来控制是否弹出关闭窗体的确认对话框

    源代码与在线示例

    本系列所有文章的源代码均可自行下载:http://fineui.codeplex.com/

    在线示例:

  • http://fineui.com/demo/#/demo/window/window.aspx
  • http://fineui.com/demo/#/demo/iframe/window.aspx
  •  

    如果本文对你有所启发或者帮助,请猛击“好文要顶”,支持原创,支持三石!

     

    24张专业版高清大图

     

     


      你可能想看:

      扫描二维码推送至手机访问。

      版权声明:本文由皇冠云发布,如需转载请注明出处。

      本文链接:https://www.idchg.com/info/27615.html

      分享给朋友:

      “windows10下如何关闭 Hive” 的相关文章

      搬瓦工:新手必备的VPS主机服务与瓦工实践经验分享

      1. 搬瓦工的概述 你好,今天我们来聊聊“搬瓦工”。这个名字可能对很多人来说有些陌生,但实际上它是一个由加拿大IT7 Networks公司推出的VPS主机品牌。简单来说,搬瓦工为用户提供了一种虚拟的服务器租赁服务,尤其适合那些想要搭建网站或学习Linux的新手。最吸引人的是,它的性价比非常高,价格也...

      域名购买推荐:如何选择最适合你的域名注册商

      域名购买推荐概述 在互联网时代,域名显得尤为重要。对于个人用户、企业甚至是初创团队来说,域名不仅是网站的门面,更是品牌形象和业务宣传的基石。记得我第一次建立网站时,选择一个合适的域名让我意识到它的价值。一个容易记住、与品牌相关的域名可以有效吸引流量,提升访问者的信任感。 在选购域名时,有几点基本原则...

      选择最佳香港VPS大带宽服务的全面指南,助你无忧搭建在线业务

      在如今这个信息高速发展的时代,选择适合的VPS服务显得尤为重要。特别是香港VPS大带宽服务,以其独特的优势吸引了越来越多的用户。对于想要进行国际业务、网站托管或是搭建游戏服务器的用户来说,香港VPS大带宽服务绝对是个不错的选择。 香港VPS大带宽的优势显而易见。一个显著的特点是无需备案,这意味着用户...

      搬瓦工the plan限量版套餐详解:高性能与性价比的完美结合

      搬瓦工the plan限量版套餐概述 当我第一次听说搬瓦工的“the plan”限量版套餐时,心里忍不住很好奇。这种套餐究竟有什么特别之处?在我深入了解后,发现它不仅仅是一个普通的套餐,而是经过精心设计,专为追求高性能和稳定性的用户打造的。它的背景源于搬瓦工希望为用户提供更优质的服务,满足日益增长的...

      虚拟主机与服务器的区别:选择最佳网络解决方案

      在现代互联网环境中,虚拟主机和服务器这两个词时常会交替出现。作为一个初学者,了解它们的基本概念是非常重要的。接下来,我将分别给大家介绍虚拟主机与服务器的定义以及它们之间的主要区别。希望通过我的描述,能够帮助大家更清晰地认识这两个概念。 首先,我想谈谈虚拟主机的定义。虚拟主机是通过虚拟化技术在一台物理...

      如何选择和配置SEO VPS以提升网站搜索引擎排名

      在现代互联网世界,很多人可能对VPS(虚拟专用服务器)有所耳闻,但究竟它是什么呢?简单来说,VPS是一种服务器托管服务,它把一台物理服务器划分成多个虚拟服务器。每个VPS都拥有自己的操作系统和资源,用户享受更高的控制权和灵活性,相较于共享主机,我们可以独立管理,同时不需要担心其他用户的影响。这个特性...