按钮的状态与大小

按钮有启用/禁用,按下/正常几种状态,对应的属性分别为Enabled、EnablePress、Pressed三个属性。

按钮有大中小三个尺寸,对应的属性为Size。

按钮上的图标

按钮上的图标可以通过Icon(枚举类型,FineUI内置了很多图标)或者IconUrl两个属性来指定,图标的位置可以位于文本的上下左右四个位置,通过IconAlign属性来指定。

对于不显示文字的按钮,只需要指定Icon或者IconUrl属性,而不用指定Text属性即可。

按钮的点击事件

默认按钮的点击会触发一次AJAX的回发,典型的代码示例如下:

<ext:Button ID="btnServerClick" Text="服务器端事件" OnClick="btnServerClick_Click" runat="server">
</ext:Button>

protected void btnServerClick_Click(object sender, EventArgs e)
{
// 事件处理
}

如果希望在客户端通过JavaScript代码来处理按钮的点击事件,需要设置EnablePostBack和OnClientClick两个属性,典型的代码如下所示:

<ext:Button ID="btnClientClick" Text="客户端事件" OnClientClick="alert('这是客户端事件');" EnablePostBack="false" runat="server">
</ext:Button>

有时,我们希望在服务器端通过C#代码注册客户端的事件脚本,典型代码如下所示:

<ext:Button ID="btnClientClick2" Text="服务器端生成的客户端事件" EnablePostBack="false" runat="server">
</ext:Button>
 

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
btnClientClick2.OnClientClick = Alert.GetShowInTopReference("这是在服务器端生成的客户端事件");
}
}

按钮点击事件的一个隐藏特性

在使用ASP.NET的按钮编程时,我们经常需要额外处理一个情况:防止按钮的重复提交!

而这个特性已经内置在FineUI的按钮中,并且公开了一个属性DisableControlBeforePostBack(默认已经启用这个功能),是不是很方便,FineUI的细腻之处很多都体现在这些非常实用的功能上,后面你会在Grid、DropDownList、Window等很多控件上看到类似的手笔。

客户端验证表单

按钮的一个主要用途是提交表单,以前我们或许要写一堆JavaScript代码了验证每个表单控件,然后在点击按钮回发之前弹出错误提示框。在FineUI的应用场景中,我们只需要为每个控件设置验证规则,然后设置按钮需要验证哪个表单或者哪些表单,这是通过ValidateForms属性来实现的。

如果需要验证多个表单,只需要将这些表单的ID以逗号分隔的形式设置到ValidateForms属性即可。可以查看这个示例页面。

<ext:Button ID="btnSubmitAll" Text="验证两个表单并提交" runat="server" OnClick="btnSubmitAll_Click" ValidateForms="extForm1,extForm2" />
 

在客户端验证失败时,会显示如下的提示框,并阻止本次表单提交:

如果你采用类似示例站点的IFrame框架结构,一定不要错过另一个属性ValidateTarget,它指定了错误提示框显示的位置,可以是本页面也可以是父页面。

带有菜单的按钮

按钮也可以拥有自己的菜单,这个示例的效果图如下所示:

ASPX页面的标签也非常干净利落:

   1:  <ext:Button ID="btnMenu" Text="中国科学技术大学" EnablePostBack="false" runat="server">
   2:      <Menu>
   3:          <ext:MenuHyperLink runat="server" Icon="TagGreen" Target="_blank" NavigateUrl="http://scms.ustc.edu.cn/"
   4:              Text="化学与材料科学学院">
   5:          </ext:MenuHyperLink>
   6:          <ext:MenuHyperLink runat="server" Icon="TagBlue" Target="_blank" NavigateUrl="http://business.ustc.edu.cn/zh_CN/"
   7:              Text="管理学院">
   8:              <Menu>
   9:                  <ext:MenuHyperLink runat="server" Icon="TagPink" Target="_blank" NavigateUrl="http://is.ustc.edu.cn/"
  10:                      Text="工商管理系">
  11:                  </ext:MenuHyperLink>
  12:                  <ext:MenuHyperLink runat="server" Icon="TagPurple" Target="_blank" NavigateUrl="http://stat.ustc.edu.cn/"
  13:                      Text="统计与金融系">
  14:                  </ext:MenuHyperLink>
  15:              </Menu>
  16:          </ext:MenuHyperLink>
  17:      </Menu>
  18:  </ext:Button>

工具栏中的按钮

按钮不仅可以单独使用,在表单中作为提交按钮,当放在工具栏中时,它摇身一变成了一个工具栏项。这样我们不仅可以设置按钮工具栏项的状态、添加点击事件、验证表单,而且还可以添加菜单,如下所示:

ASPX页面标签如下:

   1:  <ext:Panel ShowBorder="true" BodyPadding="5px" Height="300px" Width="450px" ShowHeader="false"
   2:      runat="server">
   3:      <Toolbars>
   4:          <ext:Toolbar runat="server">
   5:              <Items>
   6:                  <ext:ToolbarText runat="server" Text="内联项:">
   7:                  </ext:ToolbarText>
   8:                  <ext:ToolbarSeparator runat="server">
   9:                  </ext:ToolbarSeparator>
  10:                  <ext:Button EnablePostBack="false" Text="中国科学技术大学" runat="server">
  11:                      <Menu>
  12:                          <ext:MenuHyperLink runat="server" Target="_blank" NavigateUrl="http://scms.ustc.edu.cn/"
  13:                              Text="化学与材料科学学院">
  14:                          </ext:MenuHyperLink>
  15:                          <ext:MenuHyperLink runat="server" Target="_blank" NavigateUrl="http://business.ustc.edu.cn/zh_CN/"
  16:                              Text="管理学院">
  17:                              <Menu>
  18:                                  <ext:MenuHyperLink runat="server" Target="_blank" NavigateUrl="http://is.ustc.edu.cn/"
  19:                                      Text="工商管理系">
  20:                                  </ext:MenuHyperLink>
  21:                                  <ext:MenuHyperLink runat="server" Target="_blank" NavigateUrl="http://stat.ustc.edu.cn/"
  22:                                      Text="统计与金融系">
  23:                                  </ext:MenuHyperLink>
  24:                              </Menu>
  25:                          </ext:MenuHyperLink>
  26:                      </Menu>
  27:                  </ext:Button>
  28:              </Items>
  29:          </ext:Toolbar>
  30:      </Toolbars>
  31:  </ext:Panel>

点击按钮前的确认对话框

如果我们希望在点击按钮的时候首先弹出确认对话框(类似于JavaScript的window.confirm),在征得用户的同意后再触发按钮的默认行为,该怎么办?

FineUI也考虑到了这种需求,特意提供了如下几个属性:ConfirmText/ConfirmTitle/ConfirmIcon/ConfirmTarget

FineUI按钮控件的更多相关文章

  1. FineUI第五天---按钮控件

    按钮控件 <x:Button runat="server" ID="按下" Text="按下"></x:Button> ...

  2. WinRT自定义控件第一 - 转盘按钮控件

    之前的文章中,介绍了用WPF做一个转盘按钮控件,后来需要把这个控件移植到WinRT时,遇到了很大的问题,主要原因在于WPF和WinRT还是有很大不同的.这篇文章介绍了这个移植过程,由于2次实现的控件功 ...

  3. MFC编程入门之二十三(常用控件:按钮控件的编程实例)

    上一节讲了按钮控件Button.Radio Button和Check Box的基本用法,本节继续讲按钮控件的内容,通过一个实例让大家更清楚按钮控件在实际的软件开发中如何使用. 因为Button控件在前 ...

  4. MFC编程入门之二十二(常用控件:按钮控件Button、Radio Button和Check Box)

    本节继续讲解常用控件--按钮控件的使用. 按钮控件简介 按钮控件包括命令按钮(Button).单选按钮(Radio Button)和复选框(Check Box)等.命令按钮就是我们前面多次提到的侠义的 ...

  5. VC按钮控件实现指示灯效果

    VC为按钮控件添加图片的方法有很多种: 直接调用SetBitmap:  CButton pButton->SetBitmap(hBitmap); 使用CButtonST控件: 使用CDC: 使用 ...

  6. Delphi7 第三方控件1stClass4000的TfcImageBtn按钮控件动态加载jpg图片例子

    Delphi7 第三方控件1stClass4000的TfcImageBtn按钮控件动态加载jpg图片例子 procedure TForm1.Button1Click(Sender: TObject); ...

  7. delphi按钮控件的default属性

    delphi按钮控件的default属性用于设置默认命令按钮,.设置为true时,按[Enter键]相当于用鼠标单击了该按钮 .窗口中如果有多个按钮的default是true的话,就根据tabinde ...

  8. 关于在storyboard拖按钮控件,手动设置代码不成功的问题

    首先,在 storyboard 中拖拽一个按钮控件.设置好约束条件

  9. 重新想象 Windows 8 Store Apps (2) - 控件之按钮控件: Button, HyperlinkButton, RepeatButton, ToggleButton, RadioButton, CheckBox, ToggleSwitch

    原文:重新想象 Windows 8 Store Apps (2) - 控件之按钮控件: Button, HyperlinkButton, RepeatButton, ToggleButton, Rad ...

随机推荐

  1. Ghost克隆软件

    克隆软件Ghost初级使用教程 一.什么是Ghost ? Ghost(幽灵)软件是美国赛门铁克公司推出的一款出色的硬盘备份还原工具,可以实现FAT16.FAT32.NTFS.OS2等多种硬盘分区格式的 ...

  2. NodeJs简单七行爬虫--爬取自己Qzone的说说并存入数据库

    没有那么难的,嘿嘿,说起来呢其实挺简单的,或者不能叫爬虫,只需要将自己的数据加载到程序里再进行解析就可以了,如果说你的Qzone是向所有人开放的,那么就有一个JSONP的接口,这么说来就简单了,也就不 ...

  3. Java学习笔记--集合元素的比较Comparable,Comparator

    原文见: http://www.cnblogs.com/sunflower627/p/3158042.html 1. Comparator 和 Comparable 相同的地方 他们都是java的一个 ...

  4. MySQL数据库中日期中包涵零值的问题

    默认情况下MySQL是可以接受在日期中插入0值,对于现实来说日期中的0值又没有什么意义.调整MySQL的sql_mode变量就能达到目的. set @@global.sql_mode='STRICT_ ...

  5. HTTP服务负载均衡总结

    从一开始就要思考扩展的架构,所谓可扩展性指的是通过扩展规模提高承载能力的本领,往往体现在增加物理服务器或者集群节点.负载均衡是常见的水平扩展的手段. 目标:(1)减少单点故障(2)提升整体吞吐量(3) ...

  6. cf C. Prime Number

    http://codeforces.com/contest/359/problem/C 先求出分子的公因子,然后根据分子上会除以公因子会长生1,然后记录1的个数就可以. #include <cs ...

  7. Codeforces 276D Little Girl and Maximum XOR

    题意:给范围l,r选两个数亦或最大是多少. 思路:找到第一个l和r二进制下不相同的位置i,然后答案就是2^(i+1)-1,因为一个取0一个取1之后,后面的位置全部选1和全部选0,就是这样:011111 ...

  8. Smartcard CA智能卡之调试

    Integrated Circuit Card  集成电路卡,也叫CA卡或智能卡,将一个微电子芯片嵌入符合ISO 7816标准的卡基内,做成卡片形式,也是一个嵌入式小系统.由CPU,ROM,RAM及E ...

  9. Android Toast简介

    Toast是Android中一种提供给用户简短信息的视图,该视图已浮于应用程序之上的形式呈现给用户.因为它并不获得焦点,即使用户正在输入什么也不会受到影响.它的目标是尽可能以不显眼的方式,使用户看到你 ...

  10. SRM 599 DIV1

    A 首先发现对于2操作,每种素因子可以单独考虑,然后取出步数最多的计入答案,然后分别加上对每种素因子的1操作; 第二步我犯了个错误,以为最优方案是把素因子指数按二进制操作,在1的位置执行1操作,0的位 ...