显示效果:

具备翻页、排序、 鼠标悬浮高亮显示行、过长数据省略、鼠标悬浮显示完整数据、固定列宽行高

下面是代码:

Code(aspx)


 1        <table cellpadding="0" cellspacing="0" border="0" width="100%" style="font-size: Small">
 2                <tr >
 3                    <td  style="height: 410px;" valign="top">
 4
 5                        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" AllowPaging="True" CellPadding="4" ForeColor="Black" Font-Size="Small" Width="100%" OnRowDataBound="GridView1_RowDataBound" 
 6                            DataKeyNames="defectId,defectName,name,productId,startTime,defectLevel,defectState" AllowSorting="True" EmptyDataText="没有数据记录!!" PageSize="15" OnSorting="GridView1_Sorting" >
 7                            <Columns>
 8                                <asp:BoundField HeaderText="缺陷编号" DataField="defectId" SortExpression="defectId">
 9                                    <ItemStyle Height="15px" Width="10%" HorizontalAlign="Center" VerticalAlign="Middle"/>
10                                </asp:BoundField>
11                                <asp:BoundField HeaderText="缺陷标题" DataField="defectName" SortExpression="defectName">
12                                    <ItemStyle Height="15px" Width="25%"  HorizontalAlign="Center" VerticalAlign="Middle"/>
13                                </asp:BoundField>
14                                <asp:BoundField HeaderText="发现人" DataField="name" SortExpression="name">
15                                    <ItemStyle Height="15px" Width="10%" HorizontalAlign="Center" VerticalAlign="Middle"/>
16                                </asp:BoundField>
17                                <asp:BoundField HeaderText="产品编号" DataField="productId" SortExpression="productId">
18                                    <ItemStyle Height="15px" Width="10%" HorizontalAlign="Center" VerticalAlign="Middle"/>
19                                </asp:BoundField>
20                                <asp:BoundField DataFormatString="{0: yyyy年MM月dd日 hh:mm:ss}" HeaderText="报缺时间" HtmlEncode="False" DataField="startTime" SortExpression="startTime">
21                                    <ItemStyle Height="15px" Width="15%" HorizontalAlign="Center" VerticalAlign="Middle"/>
22                                </asp:BoundField>
23                                <asp:BoundField HeaderText="缺陷等级" DataField="defectLevel" SortExpression="defectLevelId">
24                                    <ItemStyle Height="15px" Width="10%" HorizontalAlign="Center" VerticalAlign="Middle"/>
25                                </asp:BoundField>
26                                <asp:BoundField HeaderText="缺陷状态" DataField="defectState" SortExpression="defectStateId">
27                                    <ItemStyle Height="15px" Width="10%" HorizontalAlign="Center" VerticalAlign="Middle"/>
28                                </asp:BoundField>
29
30                                
31                            </Columns>
32                            <AlternatingRowStyle Font-Size="Small" BackColor="White" ForeColor="Black" />
33                            <PagerSettings NextPageText="" PreviousPageText="" Visible="False" />
34                            <FooterStyle BackColor="#EAEFF3" Font-Bold="True" ForeColor="Black" />
35                            <RowStyle  ForeColor="Transparent" />
36                            <PagerStyle  ForeColor="Black" HorizontalAlign="Center" />
37                            <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
38                            <HeaderStyle BackColor="#EAEFF3" Font-Bold="True" ForeColor="Black" />
39                            <EditRowStyle BackColor="#999999" />
40                            
41                        </asp:GridView>
42                     </td>
43                </tr>
44                <tr>
45                    <td align="center" style="height: 25px">
46                        <asp:LinkButton ID="btnFirst" CommandArgument="first" OnClick="PagerButtonClick"
47                            runat="server">首 页</asp:LinkButton>
48                        <asp:LinkButton ID="btnPrev" CommandArgument="prev" OnClick="PagerButtonClick" runat="server">上一页</asp:LinkButton>
49                        <asp:LinkButton ID="btnNext" CommandArgument="next" OnClick="PagerButtonClick" runat="server">下一页</asp:LinkButton>
50                        <asp:LinkButton ID="btnLast" CommandArgument="last" OnClick="PagerButtonClick" runat="server">尾 页</asp:LinkButton>
51                        <asp:Label ID="LblCurrentIndex" runat="server"></asp:Label>
52                        <asp:Label ID="LblPageCount" runat="server"></asp:Label>
53                        <asp:Label ID="LblRecordCount" runat="server"></asp:Label>
54                        转到第
55                        <asp:DropDownList ID="TbxGoToPage" runat="server">
56                        </asp:DropDownList>页
57                        <asp:Button ID="BtnGoPage" runat="server" Text="GO" OnClick="BtnGoPage_Click" />&nbsp;
58                        </td>
59                        
60                </tr>
61        </table>

Code(aspx.cs)
  1    private  string sql = "select defectId,defectName,name,productId,startTime,defectLevel,defectState from defects,member,defect_level,defect_state where founderId=memberId and defect_level.defectLevelId=defects.defectLevelId and defect_state.defectStateId=defects.defectStateId";
  2    //private static string sqlNow=
  3    
  4    private static string _sqlAdd = "";
  5    protected void Page_Load(object sender, EventArgs e)
  6    {
  7            //根据搜索条件智能设置SQL语句
  8            
  9            Hashtable items = new Hashtable();
 10            items.Add("defectId", Request.QueryString["defectId"]);
 11            items.Add("defectName", Request.QueryString["defectName"]);
 12            items.Add("productId", Request.QueryString["productId"]);
 13            items.Add("name", Request.QueryString["name"]);
 14            items.Add("startTime", Request.QueryString["startTime"]);
 15            items.Add("endTime", Request.QueryString["endTime"]);
 16            items.Add("defectLevelId", Request.QueryString["defectLevelId"]);
 17            
 18            foreach(DictionaryEntry de in items) //items为一个Hashtable实例
 19            {
 20                
 21                if (de.Value.ToString() != "")
 22                {
 23                    switch (de.Key.ToString())
 24                    {
 25                        case "startTime":
 26                            sql += " and startTime>'" + de.Value + "'";
 27                            break;
 28                        case "endTime":
 29                            sql += " and startTime<'" + de.Value + "'";
 30                            break;
 31                        case "defectName":
 32                            sql += " and defectName like '%" + de.Value + "%'";
 33                            break;
 34                        case "name":
 35                            sql += " and name like '%" + de.Value + "%'";
 36                            break;
 37                        default:
 38                            sql += " and defects." + de.Key + "=" + "'" + de.Value + "'";
 39                            break;
 40                    }
 41                    
 42                }
 43                else
 44                {
 45                    continue;
 46                }
 47            }
 48
 49            //TbxGoToPage.Items.Clear();
 50            GridViewBind(sql);
 51
 52    }
 53    
 54    private void GridViewBind(string Sqlsort)
 55    {
 56        
 57        try
 58        {
 59            OleDbConnection con = DataBase.Con;
 60            OleDbCommand cmd = new OleDbCommand();
 61            cmd.Connection = con;
 62            cmd.CommandText = Sqlsort;
 63            OleDbDataAdapter da = new OleDbDataAdapter();
 64            da.SelectCommand = cmd;
 65            DataSet ds = new DataSet();
 66            da.Fill(ds, "defects");
 67            this.GridView1.DataSource = ds.Tables["defects"].DefaultView;
 68            this.GridView1.DataBind();
 69
 70            LblCurrentIndex.Text = "第 " + (GridView1.PageIndex + 1).ToString() + " 页";
 71            LblPageCount.Text = "共 " + GridView1 .PageCount.ToString()+ " 页";
 72            LblRecordCount.Text = "总共 "+ds.Tables[0].Rows.Count.ToString()+" 条";
 73            
 74            
 75            for (int i = 1; i <= GridView1.PageCount; i++)
 76            {
 77                TbxGoToPage.Items.Add(new ListItem(i.ToString(),i.ToString()));
 78            }
 79                if (ds.Tables[0].Rows.Count == 0)
 80                {
 81                    btnFirst.Visible = false;
 82                    btnPrev.Visible = false;
 83                    btnNext.Visible = false;
 84                    btnLast.Visible = false;
 85
 86                    LblCurrentIndex.Visible = false;
 87                    LblPageCount.Visible = false;
 88                    LblRecordCount.Visible = false;
 89
 90                }
 91                else if (GridView1.PageCount == 1)
 92                {
 93                    btnFirst.Visible = false;
 94                    btnPrev.Visible = false;
 95                    btnNext.Visible = false;
 96                    btnLast.Visible = false;
 97                }
 98
 99            // 计算生成分页页码,分别为:"首 页" "上一页" "下一页" "尾 页"
100            btnFirst.CommandName = "1";
101            btnPrev.CommandName = (GridView1.PageIndex == 0 ? "1" : GridView1.PageIndex.ToString());
102
103            btnNext.CommandName = (GridView1.PageCount == 1 ? GridView1.PageCount.ToString() : (GridView1.PageIndex + 2).ToString());
104            btnLast.CommandName = GridView1.PageCount.ToString();
105            //
106        }
107        catch(Exception ex)
108        {
109            Response.Write("数据库错误,错误原因:"+ex.Message);
110            Response.End();
111        }
112    }
113
114
115    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
116    {
117
118        if (e.Row.RowType == DataControlRowType.DataRow)
119        {
120            for (int j = 0; j < e.Row.Cells.Count; j++ )
121            {
122                string s = e.Row.Cells[j].Text;
123                string t = s;
124                if (s.Length >= 12)
125                {
126                    t = s.Substring(0, 12) + "";
127                }
128                e.Row.Cells[j].Text = t;
129                e.Row.Cells[j].ToolTip = s;
130                e.Row.Cells[j].Attributes.Add("ondbclick", "this.innerText = this.title");
131                //设置title为gridview的head的text
132                e.Row.Cells[j].Attributes.Add("title", s);
133            }
134        }
135
136        //我们先设置当鼠标上去的时候他的背景色改变
137        e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#BDBEAD'");
138        //下面我们再设置当鼠标离开后背景色再还原
139        e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c;");
140    }
141
142
143    protected void PagerButtonClick(object sender, EventArgs e)
144    {
145        GridView1.PageIndex = Convert.ToInt32(((LinkButton)sender).CommandName) - 1;
146        TbxGoToPage.Items.Clear();
147        GridViewBind(sql + _sqlAdd);   
148    }
149    protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
150    {
151
152
153        if (ViewState["SortDirection"] == null || ViewState["SortDirection"].ToString().CompareTo("") == 0)
154        {
155            ViewState["SortDirection"] = " desc";
156        }
157        else
158        {
159            ViewState["SortDirection"] = "";
160        }
161
162
163        if (_sqlAdd == "")
164        {
165            //_sqlAdd += " order by " + e.SortExpression + ViewState["SortDirection"];
166            switch (e.SortExpression)
167            {
168                case "defectStateId":
169                case "defectLevelId":
170                    _sqlAdd = "";
171                    _sqlAdd += " order by defects." + e.SortExpression + ViewState["SortDirection"];
172                    break;
173                default:
174                    _sqlAdd = "";
175                    _sqlAdd += " order by " + e.SortExpression + ViewState["SortDirection"];
176                    break;
177
178            }
179        }
180        else
181        {
182            switch (e.SortExpression)
183            {
184                case "defectStateId":
185                case "defectLevelId":
186                    _sqlAdd = "";
187                    _sqlAdd += " order by defects." + e.SortExpression + ViewState["SortDirection"];
188                    break;
189                default:
190                    _sqlAdd = "";
191                    _sqlAdd += " order by " + e.SortExpression + ViewState["SortDirection"];
192                    break;
193
194            }
195
196        }
197        //sql = sql + _sqlAdd;
198        TbxGoToPage.Items.Clear();
199        GridViewBind(sql + _sqlAdd);
200    }
201    protected void BtnGoPage_Click(object sender, EventArgs e)
202    {
203        if (TbxGoToPage.SelectedValue != "" || TbxGoToPage.SelectedValue != null)
204        {
205            GridView1.PageIndex = Convert.ToInt32(TbxGoToPage.SelectedValue.ToString()) - 1;
206            TbxGoToPage.Items.Clear();
207            GridViewBind(sql);
208        }
209    }

转载于:https://www.cnblogs.com/xieon1986/archive/2009/04/13/1434876.html

今天完成了一个真正意义上完整的gridview数据表操作相关推荐

  1. 向NCBI上传16S rDNA数据的操作详解

    目录 写在前面的话 正式进行数据提交前查看到的一些参考信息 登录NCBI上传网页 查看一些引导信息 正式的数据提交过程 Aspera提交工具 创建bioproject 创建biosample 编写me ...

  2. linux开机自动加载igb模块,linux – 使用intel igb(已解决)在3/5 raid6 iSCSI NAS设备上的第一个RX队列上丢弃100%数据包...

    编辑:问题已解决.有问题的队列已用于流控制数据包.为什么igb驱动程序传播FC数据包以使其丢弃(并计数)是另一个问题.但解决方案是,数据丢失的方式没有任何损失. 非常感谢syneticon-dj,你指 ...

  3. 分享一个在微信上捞几万块的操作

    最近研究了下公积金,发现可以提取多余存款用来交房租,就在微信上就提了几万块. 如果你是在大城市工作的年轻人,每月扣完税到手工资不多,然后还要交不便宜的房租,短期内也没有买房需求,那也可以像我这样操作, ...

  4. 徐少春说,金蝶国际明年就成真正意义上的云计算公司

    金蝶国际徐少春对外发言指出,2020年成为一家真正意义上的云计算公司. 你们信吗? 对于一个以财务软件起家的软件公司,如何转型到云计算领域的弄潮儿,其实这个事情的发展并不是金蝶所情愿的.毕竟用户依托云 ...

  5. 史上最详细大数据基础知识

    # **1___Hive** ## 0.0.hive基本命令 ```sql [1.分区表] --创建分区 alter table table_name add partition(分区字段='分区值' ...

  6. C++: 有限元法 (FEM) 应用于线性两点 一个空间维度上的边界值问题 (附完整源码)

    C++: 有限元法 (FEM) 应用于线性两点 一个空间维度上的边界值问题 # include <cstdlib> # include <iostream> # include ...

  7. linux卸载android studio,mac上完整卸载删除.简单粗暴无脑:androidstudio删除方案

    如果你是mac  ,你删除as ,删不干净也正常,你会发现安装的时候,前面的东西也在.配置文件在,会导致你以前的错误不想要的东西都在. 废话不多说,复制粘贴就是干!!!!~~~~~~~~ 第一步: 复 ...

  8. 法律意义上可靠的电子签名是如何实现的

    目录 法律意义上可靠的电子签名是如何实现的 什么是法律意义上可靠的电子签名 什么是数字签名 什么是PKI体系 什么是公开密钥加密 一份电子文件的数字签名及加密传输过程 为什么是对Hash值加密,为什么 ...

  9. 自己造个真正意义上的AI纸片人离我们还有多远?

    自己造个真正意义上的AI纸片人离我们还有多远? 我一直想自己"造"个可以像个人一样跟我聊天,当我想操作电脑或手机或玩游戏时,只要跟ta说,ta都能为我操作,还帮我玩游戏挂机--的纸 ...

  10. 孟岩:开源应该做到真正意义上的分布式协作

    2018年7月4日-5日,由TokenSky组委会.日本游戏公司Asobimo.中国IT技术社区CSDN主办的「2018 TokenSky区块链大会·东京」在东京Belle Salle汐留隆重举行. ...

最新文章

  1. Javascript中的深拷贝和浅拷贝
  2. 【实战演练】两种方法让 Docker 帮您快速构建应用程序
  3. Windows 10强推新功能:能否让你的电脑更快
  4. 多布局怎么搭建_怎么制作网页?网页制作基本步骤
  5. Android Studio 安装说明
  6. Android 加载网页进度条
  7. Charles 破解版安装图解
  8. 蓝桥杯:第39级台阶
  9. winform自定义控件无法显示在工具箱中以及显示但使用时出错的解决办法
  10. 千锋python培训机构可靠吗
  11. java开发工程师p2级别_java开发工程师p2级别_Java程序员等级怎么划分?
  12. SpringCloud_Alibaba微服务学习---sentinel—流量卫兵
  13. 办公软件使用学习笔记:excel第四节。excel美化表格(智能表格,美化套路)。图表数据动态显示,迷你图、条件格式、动态图表、
  14. .Net中Web增加加密狗管理
  15. 客户体验和客户服务的区别
  16. QML遮罩效果Demo
  17. 深度学习(一)—— 深度学习概述
  18. Vue源码中的对象相等比较
  19. iris配置https访问
  20. 掌上题库V1.2.2全开源版本小程序带后端

热门文章

  1. linux中级之netfilter防火墙(firewalld)
  2. MySQL:BlackHole
  3. 从零开始的Python学习Episode 20——面向对象(3)
  4. 24 内置函数 命名元组(namedtuple) ,os ,sys,序列化,pickle,json
  5. Unity 移动 和 旋转 [小结]
  6. Python for Infomatics 第12章 网络编程四(译)
  7. JSON转Model内部实现解析
  8. Chinese_PRC
  9. 紧急救援 L2-001 dijkstra 打印路径 最短路条数 权值
  10. mysqldump导出数据