作者: cuike519的专栏   http://blog.csdn.net/cuike519/

下文将为您演示如何将DataGrid实现为一个立体的表格,以及如何实现在Image按钮中实现立体感的效果。为了完成上面的内容我们首先要对CSS的自定义样式有所了解,然后就是一些简单的js代码。

为了实现立体大DataGrid我们需要创建一个工程,里面有一个DataGrid以及绑定在其上的数据,代码如下:

<asp:datagrid id="DataGrid1" runat="server" GridLines="Horizontal" style="BORDER-COLLAPSE:separate">

<ItemStyle ></ItemStyle>

</asp:datagrid>

上面的代码中有一个地方非常重要,就是设置style的属性那里,记得一定要写成这样。有了这个数据网格以后我们需要写一个可以实现立体效果的css样式,CSS样式如下所示:

<style>

.SolidDataGrid{

CoolSolidDataGrid:expression(ApplySolidTable(this));

border-color:#FFFFFF;

border-bottom-width:0px;

border-left-width:0px;

border-right-width:0px;

border-top-width:0px;

}

.SolidDataGridItem{

CoolSolidDataGridRow:expression(ApplySolidTr(this));

}

</style>

从代码中我们可以看到使用了自定义的样式,该样式使用js来实现的,所以我们还要有下面的js代码来支持上面的CSS样式。Js代码如下所示:

<script language="javascript">

function ApplySolidTable(obj){

obj.cellPadding = "0px";

obj.cellSpacing = "0px";

obj.border = "1px";

obj.width = "100%";

}

function ApplySolidTr(obj){

for(var i=0;i<=obj.cells.length-1;i++){

ApplySolidTd(obj.cells(i));

}

}

function ApplySolidTd(CurrentTd){

CurrentTd.bgColor = "#E1E2E2";

CurrentTd.borderColorLight = "#929292";

CurrentTd.borderColorDark = "#FFFFFF";

}

</script>

代码的细节我就不详细表述了,最后只要将上面的CSS应用在我们的DataGrid里面就可以实现立体的DataGrid效果。最终的DataGrid如下所示:

<asp:datagrid id="DataGrid1" runat="server" CssClass="SolidDataGrid" GridLines="Horizontal" style="BORDER-COLLAPSE:separate">

<ItemStyle CssClass="SolidDataGridItem"></ItemStyle>

</asp:datagrid>

接下来是如何实现有立体效果的Image按钮,其实很简单就是实现一般Windows里面按钮的效果,打开Word将鼠标移动到工具条后你就可以看到该方法实现的效果。操作如下:你可以放一个ImageButton或者被浏览器最后解释成image的控件,为了实现这个效果我们需要下面的js脚本,但是由于我们想重用这个脚本所以我将它写到一个HTC文件中,文件内容如下:

<PUBLIC:COMPONENT>

<PUBLIC:ATTACH EVENT="onmouseover" ONEVENT="ButtonOnMouseOver()" />

<PUBLIC:ATTACH EVENT="onmouseout"  ONEVENT="ButtonOnMouseNormal()" />

<PUBLIC:ATTACH EVENT="onmousedown" ONEVENT="ButtonOnMouseDown()"/>

<PUBLIC:ATTACH EVENT="onmouseup" ONEVENT="ButtonOnMouseNormal()"/>

<SCRIPT LANGUAGE="javascript">

function ButtonOnMouseOver(){

showMouseOver(this.style);

}

function ButtonOnMouseDown(){

showMouseDown(this.style);

}

function ButtonOnMouseNormal(){

showNormal(this.style);

}

function showMouseOver(elStyle){

elStyle.borderLeft   = "1px solid buttonhighlight";

elStyle.borderRight  = "1px solid buttonshadow";

elStyle.borderTop    = "1px solid buttonhighlight";

elStyle.borderBottom = "1px solid buttonshadow";

elStyle.paddingTop    = "1px";

elStyle.paddingLeft   = "2px";

elStyle.paddingBottom = "1px";

elStyle.paddingRight  = "0px";

}

function showMouseDown(elStyle){

elStyle.borderLeft   = "1px solid buttonshadow";

elStyle.borderRight  = "1px solid buttonhighlight";

elStyle.borderTop    = "1px solid buttonshadow";

elStyle.borderBottom = "1px solid buttonhighlight";

elStyle.paddingTop    = "1px";

elStyle.paddingLeft   = "2px";

elStyle.paddingBottom = "1px";

elStyle.paddingRight  = "0px";

}

function showNormal(elStyle){

elStyle.border = "1px solid buttonface";

elStyle.paddingTop    = "0px";

elStyle.paddingLeft   = "1px";

elStyle.paddingBottom = "2px";

elStyle.paddingRight  = "1px";

}

</SCRIPT>

</PUBLIC:COMPONENT>

我们可以使用下面的方法将该行为附加到指定的控件上:

YourControl ctl = (YourControl)Button;

ctl.Style.Add("behavior","url(PowerButton.htc)");

嘿嘿!都是些小技巧,有不对之处请多指教。谢谢!上面的立体DataGrid的实现参考了灰豆宝宝的《实现立体表格》。

如何实现立体的DataGrid和具有Windows效果的图片按钮相关推荐

  1. 解决网站搬家windows下解压图片文件名乱码问题的利器:Bandizip

    很多时候我们备份网站需要把网站整站打包,大多数linux系统打包后默认的压缩格式是.zip结尾的.我们打包下载到本地,然后用winrar解压,会出现乱码,特别是图片: 图片乱码 图片中的中文显示的是乱 ...

  2. Linux 字体微调 - windows 效果版

    2019独角兽企业重金招聘Python工程师标准>>> Linux 字体微调 - windows 效果版 作者:quanliking 转载请注明:来自 http://www.linu ...

  3. python绘制立体心形折纸图解_PS制作超漂亮的立体的心形折纸效果

    今天为大家分享PS制作超漂亮的立体的心形折纸效果方法,教程难度不是很大,制作出来的折纸效果非常漂亮,好了,一起来学习吧! 背景选择灰色的渐变底 如下 新建一个图层,可以使用其他的图案 或者 图形 但是 ...

  4. windows默认的图片查看器打开JPG图片显示为空白,但全屏又能正常显示。

    windows默认的图片查看器打开JPG图片显示为空白,但全屏又能正常显示. 打开注册表 进入目录 hkey_classes_root\.jpg 修改默认值为jpegfile即可 当遇到这类故障,我们 ...

  5. 怎么打开Windows Server 2008 图片预览的功能

    打开一个文件夹,点击菜单中的"工具"->"文件夹选项",切换到"查看"选项卡,在高级设置中取消如下选项: "始终显示图标,从 ...

  6. Windows系统SVG图片预览插件

    由于工作中经常需要对组图查看和管理,而Windows系统不支持在文件夹下直接预览svg图片, HBuilderX 插件市场没有找到相应的svg插件,比较麻烦.经过查找,发现svg扩展插件(SVG Vi ...

  7. [ Windows 10 ] 任务栏按钮不显示正在打开的窗口了(打开任何程序任务栏图标按钮都不显示)

    文章目录 问题描述 原因分析 解决办法 问题描述 系统是Windows 10 professional版本,在一次突然开机后,发现点开程序后,在任务栏什么都不显示,任务栏按钮和图标状态均不显示了,但是 ...

  8. Windows遇到的图片查看问题。

    解决windows照片查看器打不开图片,可能由于内存不足的问题. 问题显示如图 问题原因: 可能是由于windows照片查看器识别处理不了该图片的颜色. 解决方案: 控制面板–>查看方式:小图标 ...

  9. Windows下安装图片标注工具LabelImg遇到的问题及解决办法

    个人用的是windows系统,由于在windows系统下采取了好几种的安装方案,本着个人的喜好,选择了第一种安装方法 由上图可以看到,其实安装方案也比较简单,自己仅需要安装两个包, pip insta ...

最新文章

  1. 移动硬盘提示此卷不包含可识别的文件系统数据如何恢复
  2. c ef框架-mysql_.net EF框架 MySql實現實例
  3. php创建view,GitHub - houdunwang/laravel-view: Laravel 视图组件生成器
  4. Ubuntu系统rm命令删除文件没有提示,怎么办?
  5. 通过java.net.URLConnection发送HTTP请求的方法
  6. html5通过api调数据库,使用HTML5数据库API [关闭](Using HTML5 Database API [closed])
  7. 黑群晖找不到设备_黑群晖洗白算号器SN、MAC地址
  8. 使用定时器判断确保某个标签有值才执行方法, 控制js代码执行先后顺序
  9. [SAP ABAP开发技术总结]选择屏幕——各种屏幕元素演示
  10. JAVA中list,set,数组之间的转换详解
  11. Linux Workqueue
  12. 基础算法(三)---二分排序(Java)
  13. android个人日记本论文,个人心情日记本的设计与实现论文.doc
  14. APP微信登录后端PHP,PHP开发微信授权登录教程
  15. python如何打开npy文件_操作python如何实现npy格式文件转换为txt文件
  16. Huffman实现对26个英文字母的编码
  17. 软件工程知识点总结——第一、二部分
  18. 富文本TinyMCE
  19. 一加6点击五下出来Android10,一加6T现已推送Android 10.0公测版更新
  20. 个人网站学习实践(wordpress教程)

热门文章

  1. matlab plot不均匀间隔,matplotlib如何绘制间隔为2^n的不均匀图形?
  2. ue4 曲线图实现 蓝图_UE4蓝图解析(一)
  3. C语言面试题-这些简单的你能很快的写出来吗?
  4. LabVIEW仪表盘识别(实战篇—6)
  5. Jupyter-ROS(机器人操作系统)
  6. MPlayer编译步骤
  7. TensorFlow(9)(项目)人马图像分类(卷积神经网络)
  8. 状态估计问题学习记录(1)
  9. Udacity机器人软件工程师课程笔记(八)-ROS Turtlesim 包的相关命令
  10. 使用SCSS高亮显示控件、聚焦位置