转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
Highlighting Rows in an ASP.Net DataGrid...         ★★★★

Highlighting Rows in an ASP.Net DataGrid...

作者:闵涛 文章来源:闵涛的学习笔记 点击数:991 更新时间:2009/4/23 10:44:57
Highlighting Rows in an ASP.Net DataGrid...
By: John Kilgo Date: January 11, 2003 Download the code. Printer Friendly Version

I like the idea of highlighting rows in a DataGrid as the user scrolls the mouse up and down over the grid. The effect can be achieved using several lines of client-side JavaScript, but why do that when two lines of .Net code will accomplish the same thing? The trick is to implement an ItemDataBound event handler and add OnMouseOver and OnMouseOut attributes to handle the color change.

The code for this project is in two parts. An aspx page is used to define the datagrid and its attributes, while a .vb code-behind page is used to implement the database activity and handle the ItemDataBound method. First the .aspx page.

Notice the line OnItemDataBound="dtgCustomers_ItemDataBound". OnItemDataBound is a DataGrid method that raises the ItemDataBound event. "dtgCustomers_ItemDataBound" is the event handler which is contained in the code-behind file. One note: I chose to display rows from the NorthWind Customers table. Since this table contains over 90 rows, I also implemented paging for the datagrid. If you have used datagrids at all the rest of the attributes should be self explantory. I won''''t spend any more time on the .aspx page.

<%@ Page Language="vb" Src="HighlightDataGrid.aspx.vb" Inherits="HighlightDataGrid" %>

<html>
<head>
<title>Mouseover Highlighting of DataGrid Rows</title>
</head>
<body>
<form runat="server" ID="Form1">
<asp:DataGrid id="dtgCustomers"
              runat="server"
              OnItemDataBound="dtgCustomers_ItemDataBound"
              CellPadding="4"
              BackColor="White"
              BorderWidth="1px"
              BorderStyle="None"
              BorderColor="Indigo"
              AllowPaging="True"
              PageSize="10"
              OnPageIndexChanged="dtgCustomers_PageIndexChanged"
              PagerStyle-Mode="NumericPages"
              EnableViewState="False"
              AutoGenerateColumns="True">
  <SelectedItemStyle font-bold="True"
                     forecolor="#663399"
                     backcolor="#FFCC66">
  </SelectedItemStyle>
  <ItemStyle forecolor="Navy"
             backcolor="White">
  </ItemStyle>
  <AlternatingItemStyle ForeColor="Navy"
                        BackColor="Yellow">
  </AlternatingItemStyle>
  <HeaderStyle font-bold="True"
               forecolor="Navy"
               backcolor="LightYellow">
  </HeaderStyle>
  <PagerStyle horizontalalign="Center"
              forecolor="Navy"
              backcolor="LightYellow">
  </PagerStyle>
</asp:DataGrid>
</form>
</body>
</html> Now for the codebehind file. The majority of the code is the typical database stuff to get the data, and to bind the data to the grid. All you see just below should again be self explanatory. Imports System
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Data.SqlClient
Imports System.Data

Public Class HighlightDataGrid : Inherits Page

  Protected dtgCustomers As DataGrid

  Sub Page_Load(Sender As Object, E As System.EventArgs)
    BindTheGrid()
  End Sub

  Sub BindTheGrid()
    Dim sqlConn As New SqlConnection( _
      "server=localhost;database=NorthWind;uid=sa;pwd=secret")
    Dim dtaCustomers As New SqlDataAdapter( _
        "Select CustomerID, CompanyName, ContactName, Phone " _
        & "From Customers", sqlConn)
    Dim dsCustomers As DataSet

    Try
      dsCustomers = New DataSet()
      dtaCustomers.Fill(dsCustomers)
      dtgCustomers.DataSource = dsCustomers
      dtgCustomers.DataBind()
    Catch SQLEx As SqlException
      Response.Write(SQLEx.Message.ToString())
    Catch Ex As Exception
      Response.Write(Ex.Message.ToString())
    Finally
      sqlConn.Close()
    End Try
  End Sub The code immediately below is where all the work gets done to implement the highlighting. The line within the first If block simply adds the OnMouseOver attribute to the Item changing the background color no matter whether we are in an ItemTemplate or an AlternatingItemTemplate. In the If-Then-Else block we are checking to see if we are in an ItemTemplate or an AlternatingItemTemplate and using the OnMouseOut attribute to set the background color of the row back to its original setting.   Sub dtgCustomers_ItemDataBound(sender As Object, e As DataGridItemEventArgs)
    If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
      e.Item.Attributes.Add("onmouseover", "this.style.backgroundColor=''''Silver''''")
    End If
    If e.Item.ItemType = ListItemType.Item Then
      e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor=''''White''''")
    Else
      e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor=''''Yellow''''")
    End If
  End Sub

  Sub dtgCustomers_PageIndexChanged(sender As Object, e As DataGridPageChangedEventArgs)
    dtgCustomers.CurrentPageIndex = e.NewPageIndex
    BindTheGrid()
  End Sub
End Class You may run the program by clicking Here.
You may download the code by clicking Here.


[办公软件]PowerPoint模板使用经验之谈  [办公软件]教你在Powerpoint中设置页眉页脚
[办公软件]在Powerpoint中如何插入Flash动画  [办公软件]如何在Powerpoint 中(实现)输入上标、下标
[办公软件]如何在PowerPoint同一张幻灯片中显示大量文字  [办公软件]这样来修改PowerPoint超级链接的文字颜色
[办公软件]PowerPoint小小操作技巧,让您工作更轻松  [办公软件]如何在office(PowerPoint,Word,Excel)中制作带圈的…
[办公软件]保留PowerPoint超链接,但是取消超链接的下划线  [办公软件]挖掘PowerPoint图片自动压缩功能在不失真的情况下…
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台