程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> 如何實現立體的DataGrid和具有Windows效果的圖片按鈕

如何實現立體的DataGrid和具有Windows效果的圖片按鈕

編輯:關於C#
 

下文將為您演示如何將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的實現參考了灰豆寶寶的《實現立體表格》。  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved