2014年8月1日 星期五

Gridview很漂亮的样式


http://blog.xuite.net/yan.kee/CSharp/30924559-%5B%E8%BD%89%5DGridview%E5%BE%88%E6%BC%82%E4%BA%AE%E7%9A%84%E6%A0%B7%E5%BC%8F

巧用CSS解決asp.net中Gridview邊框樣式問題



巧用CSS解決asp.net中Gridview邊框樣式問題
轉自:http://yoohhome.blog.163.com/blog/static/114274662201032875618538/
html標籤中的bordercolor屬性指定表格邊框顏色之後,無論是表格的四個邊框還是表格內部的單元格
邊框顏色便都設置好了.但是在asp.net的gridview控件中,設置bordercolor之後,在生成的html代碼
中是這樣表示的:
style="border-color:#93C2F1;border-collapse:collapse;">
原來gridview中設置的bordercolor屬性是css中的屬性,其結果就是gridview的四個邊框的顏色變了,
但是內部單元格的顏色卻是灰色,而不是你指定的顏色.
【方法一】
//DataGrid
    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
        if (e.Item.ItemType == System.Web.UI.WebControls.ListItemType.Header)
        {
            e.Item.Attributes.Add("style", "background-image:url('imgs/about7.gif')");
        }
    }
    //GridView:
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.Header)
        {
            e.Row.Attributes.Add("style", "background-image:url('imgs/about7.gif')");
        }
    }
【方法二】
運用css去控制
網上有不少朋友討論過這個問題,有一種解決方法是用代碼給gridview添加真正的bordercolor屬性
例如:
this.GridView1.Attributes.Add("bordercolor", "red");
這樣的缺點是不太靈活,如果需要用主題來控制界面樣式
而代碼中又有這樣的語句的話,就不是很合適
利用css提供的機制,可以比較好的解決這個問題
舉個例子啊
在主題中,將gridview的cssclass設置爲gridview_m

   
   
   
然後在css樣式表中設置:
table.gridview_m border-collapse: collapse;
border:solid 1px #93c2f1;
width:98%;
font-size:10pt;
}
table.gridview_m td,th border-collapse: collapse;
border:solid 1px #93c2f1;
font-size:10pt;
}
以上css樣式中還有其他樣式,主要就是這一句:table.gridview_m td,th
將會給class="gridview"的table中的th和td標籤應用樣式
這樣就解決了gridview的邊框問題
其實,當你用第一個方法實現後,查看源代碼不難發現,GridView控件被解析爲table,而頭部被多個《th》 標籤分開。包含頭部的那個《tr》變成了這樣:

CSS code /*GridView 的樣式===============================*/ .GridViewHeaderStyle background-color: #5D7B9D;
font-weight: bold;
color: White;
} .GridViewStyle
{/* 控制GridView整體屬性 */
color:#333333;
font-size:9pt;
width:90%;
border-color:#a1b5c0;
border-width:1px; .GridViewHeaderStyle th
{ /* 控制GridView頭標題屬性 */
background-color:#859FD4;
border-color:White;
font-weight: bold;
color: White; .GridViewRowStyle background-color:#EFF3FB; .GridViewEditRowStyle background-color: #2461BF; .GridViewAlternatingRowStyle background-color: white; .GridViewRowStyle td, .GridViewAlternatingRowStyle td border: 1px solid white;
height:25px;
cursor:hand;/* 鼠標移到行上時變爲手型 */
} .GridViewSelectedRowStyle background-color: #D1DDF1;
font-weight: bold;
color: #333333; .GridViewPagerStyle, .GridViewPagerStyle td background-color: #2461BF;
text-align:center;
color: White;
height:20px;
} /*GridView 的樣式===============================*/
C# code
 
//頭樣式
//行樣式...還有其他的


沒有留言: