重写GridView实现单击行变色的效果
来源:互联网 发布:淘宝卖家淘客怎么设置 编辑:程序博客网 时间:2024/05/02 02:52
继承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;
using System.Drawing;
namespace MyLabel
{
public class MyGridView:GridView
{
public MyGridView()
{
}
[Browsable(true)]
[Category("Appearance")]
[Description("设置单击当前行时当前行的背景色")]
public virtual Color ClickBackGroundColor
{
get
{
return ViewState["ClickBackGroundColor"]!=null?(Color)ViewState["ClickBackGroundColor"]:Color.Empty;
}
set
{
ViewState["ClickBackGroundColor"] = value;
}
}
[Browsable(true)]
[Category("Appearance")]
[Description("设置单击当前行时当前行的字体背景色")]
public virtual Color ClickFontColor
{
get
{
return ViewState["ClickFontColor"] != null ? (Color)ViewState["ClickFontColor"] : Color.Empty;
}
set
{
ViewState["ClickFontColor"] = value;
}
}
protected override void OnRowDataBound(GridViewRowEventArgs e)
{
if (ClickBackGroundColor != null && ClickFontColor != null)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.RowIndex != -1)
{
e.Row.Attributes["onclick"] = "if(window.oldtr!=null){window.oldtr.runtimeStyle.cssText= ' ';}this.runtimeStyle.cssText= 'background-color:" + ClickBackGroundColor.ToString() + ";color:" + ClickFontColor.ToString() + " ';window.oldtr=this ";
}
}
}
base.OnRowDataBound(e);
}
}
}
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing;
namespace MyLabel
{
public class MyGridView:GridView
{
public MyGridView()
{
}
[Browsable(true)]
[Category("Appearance")]
[Description("设置单击当前行时当前行的背景色")]
public virtual Color ClickBackGroundColor
{
get
{
return ViewState["ClickBackGroundColor"]!=null?(Color)ViewState["ClickBackGroundColor"]:Color.Empty;
}
set
{
ViewState["ClickBackGroundColor"] = value;
}
}
[Browsable(true)]
[Category("Appearance")]
[Description("设置单击当前行时当前行的字体背景色")]
public virtual Color ClickFontColor
{
get
{
return ViewState["ClickFontColor"] != null ? (Color)ViewState["ClickFontColor"] : Color.Empty;
}
set
{
ViewState["ClickFontColor"] = value;
}
}
protected override void OnRowDataBound(GridViewRowEventArgs e)
{
if (ClickBackGroundColor != null && ClickFontColor != null)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.RowIndex != -1)
{
e.Row.Attributes["onclick"] = "if(window.oldtr!=null){window.oldtr.runtimeStyle.cssText= ' ';}this.runtimeStyle.cssText= 'background-color:" + ClickBackGroundColor.ToString() + ";color:" + 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>
<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>
<%@ 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>
<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>
下面运行后的效果:
- 重写GridView实现单击行变色的效果
- 重写GridView实现单击行变色的效果
- Android 单击文本变色效果实现的2中方式
- 鼠标单击TR实现行变色效果,再次单击恢复原色
- asp.net的 GridView 选中行变色效果、 、
- ASP.NET GridView鼠标停留变色,行单击显示详细记录的事件处理
- gridview实现点击行变色
- gridview控件实现行变色
- GridView的几个事件(如实现: 行的双击/单击/捕捉键盘按键/鼠标悬浮/移出效果)(示例代码下载)
- GridView的几个事件(如实现: 行的双击/单击/捕捉键盘按键/鼠标悬浮/移出效果)(示例代码下载)
- GridView的几个事件(如实现: 行的双击/单击/捕捉键盘按键/鼠标悬浮/移出效果)
- 实现鼠标移动到Gridview上的行是变色
- gridview 鼠标点击行变色 等实现
- Asp.net 2.0 GridView的几个事件(如实现: 行的双击/单击/捕捉键盘按键/鼠标悬浮/移出效果)(示例代码下载)
- Asp.net 2.0 GridView的几个事件(如实现: 行的双击/单击/捕捉键盘按键/鼠标悬浮/移出效果)(示例代码下载)
- Asp.net 2.0 GridView的几个事件(如实现: 行的双击/单击/捕捉键盘按键/鼠标悬浮/移出效果)(示例代码下载)
- Asp.net 2.0 GridView的几个事件(如实现: 行的双击/单击/捕捉键盘按键/鼠标悬浮/移出效果)(示例代码下载)
- Asp.net 2.0 GridView的几个事件(如实现: 行的双击/单击/捕捉键盘按键/鼠标悬浮/移出效果)(示例代码下载)
- HP UNIX 无法打开VNC 特定PORT 进程
- C++ 中 inline 的处理
- 3DGS脚本教程翻译(7)-字符串,文本和字体
- inner join&left outer join&right outer join 区别
- 向女强人致敬!真的很不容易
- 重写GridView实现单击行变色的效果
- 登录页面嵌套在框架中问题
- 常用struts标签使用举例--bean篇(转载)
- 深入浅出Liferay Portal (5)
- (轉)无能的WinXP
- 深入浅出Liferay Portal (6)
- 深入浅出Liferay Portal (7)
- 3DGS脚本教程翻译(8)-位置,角度和比例
- 深入浅出Liferay Portal (4)