首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>NET专区>.NET2.0>重写GridView实现单击行变色的效果代码
重写GridView实现单击行变色的效果代码
来源: 发布时间:2008-03-15 发布人: 浏览: 人次   字体: [ ]  

继承GridView控件加入ClickBackGroundColor和ClickFontColor属性,其中ClickBackGroundColor属性是设置单击当前行时的背景色,ClickFontColor是设置单击当前行时的字体颜色.默认单击行不变色,代码如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace MyLabel
{
    
public class MyGridView:GridView
    {
        
public MyGridView()
        {
        }
        [Browsable(
true)]
        [Category(
"Appearance")]
        [Description(
"设置单击当前行时当前行的背景色")]
        
public virtual string ClickBackGroundColor
        {
            
get
            {
                
return ViewState["ClickBackGroundColor"]!=null?(string)ViewState["ClickBackGroundColor"]:"";
            }
            
set
            {

                ViewState[
"ClickBackGroundColor"= value;
            }
        }
        [Browsable(
true)]
        [Category(
"Appearance")]
        [Description(
"设置单击当前行时当前行的字体背景色")]
        
public virtual string ClickFontColor
        {
            
get
            {
                
return ViewState["ClickFontColor"!= null ? (string)ViewState["ClickFontColor"] : "";
            }
            
set
            {

                ViewState[
"ClickFontColor"= value;
            }
        }
        
protected override void OnRowDataBound(GridViewRowEventArgs e)
        {
            
if (e.Row.RowType == DataControlRowType.DataRow)
            {
                
if (e.Row.RowIndex != -1)
                {
                    
if (ViewState["ClickBackGroundColor"!= null && ViewState["ClickFontColor"!= null)
                    {
                        e.Row.Attributes[
"onclick"= "if(window.oldtr!=null){window.oldtr.runtimeStyle.cssText= ' ';}this.runtimeStyle.cssText= 'background-color:" + ViewState["ClickBackGroundColor"].ToString() + ";color:" + ViewState["ClickFontColor"].ToString() + " ';window.oldtr=this ";
                    }
                }
            }
            
base.OnRowDataBound(e);
        }
    }
}

前台代码如下: 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Demo.aspx.cs" Inherits="Demo" %>

<%@ Register Assembly="MyLabel" Namespace="MyLabel" TagPrefix="cc1" %>

<%@ Register Src="AspNetPager.ascx" TagName="AspNetPager" TagPrefix="uc1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    
<title>无标题页</title>
</head>
<body>
    
<form id="form1" runat="server">
    
<div>
        
&nbsp;
        
<cc1:MyGridView ID="GridView1" runat="server"  AllowPaging="false" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None" PagerSettings-Visible="false"
                    Width
="100%" height="35" ClickBackGroundColor="#ffccff" ClickFontColor="#ffffff">
         
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                    
<RowStyle BackColor="#EFF3FB" />
                    
<EditRowStyle BackColor="#2461BF" />
                    
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />  
                    
<PagerStyle ForeColor="White" VerticalAlign="Top" BackColor="Transparent"  />                 
                    
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                    
<AlternatingRowStyle BackColor="White" />
                    
<Columns>
                        
<asp:TemplateField HeaderText="序号">
                            
<ItemTemplate>
                                
<%# Container.DataItemIndex+1 %>
                            
</ItemTemplate>
                        
</asp:TemplateField>
                        
<asp:BoundField DataField="I_BriefnessID" HeaderText="ID" />
                        
<asp:BoundField DataField="I_KMID" HeaderText="科目" />
                        
<asp:BoundField DataField="C_Recno" HeaderText="试题号" />         
                        
<asp:BoundField DataField="M_Title" HeaderText="题面" />
                        
<asp:BoundField DataField="C_Answer" HeaderText="答案" />  

                    
</Columns>
        
</cc1:MyGridView>
    
</div>
    
<div>
        
<uc1:AspNetPager ID="AspNetPager1" runat="server" />
        
</div>
    
</form>
</body>
</html>

下面运行后的效果:


相 关 文 章   发布商链接
·图解ASP.NET下AJAX安装(VS2005下安...
·Gridview控件字段内容过长的解决方法...
·实例解决GridView中弹出对话框并改变...
·Net2.0中使用母版页及其母版页的控件
·为GridView控件添加分页导航条形式代...
·GridView中固定列的两种方法
·DataView对象获取数据行相应列值的两...
·VS2005利用TreeView控件和递归函数动...
·GridView通过模板列实现第一列显示出...
·asp.NET 2.0中引发CSS失效问题原因和...
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·实例讲解在.net2.0中对config
·包含32种常见的用户输入验证...
·asp.net不使用服务器控件的情
·如何更改单个aspx页面的编码...
·实例讲解如何设置gridview的...
·asp.NET 2.0中引发CSS失效问...
·GridView通过模板列实现第一...
·VS2005利用TreeView控件和递...
·DataView对象获取数据行相应...
·GridView中固定列的两种方法
·为GridView控件添加分页导航...
·Net2.0中使用母版页及其母版...
·实例解决GridView中弹出对话...
·Gridview控件字段内容过长的...
·图解ASP.NET下AJAX安装(VS20...
热 门 文 章
·asp.net(C#)弹出窗口返回值并...
·VS2005利用Excel组件操作Exce...
·AJAX实现无刷新适时显示gridV...
·gridview表头固定并实现打印...
·Js获取radiobuttonlist选中值...
·gridview绑定数据显示的各种...
·ASP.NET中“无法加载 DLL 找...
·asp.net2.0回发或回调参数无...
·asp.net文件下载防止乱码出现...
·实现gridview内容打印功能的...
·图解ASP.NET下AJAX安装(VS20...
·ASP.NET多个用户控件回车提交...
·实例解决GridView中弹出对话...
·gridview空数据源时仍显示表...
·asp.net中GridView每个单元格...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .