今天完成了一个真正意义上完整的gridview数据表操作
显示效果:
具备翻页、排序、 鼠标悬浮高亮显示行、过长数据省略、鼠标悬浮显示完整数据、固定列宽行高
下面是代码:
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" />
58 </td>
59
60 </tr>
61 </table>
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数据表操作相关推荐
- 向NCBI上传16S rDNA数据的操作详解
目录 写在前面的话 正式进行数据提交前查看到的一些参考信息 登录NCBI上传网页 查看一些引导信息 正式的数据提交过程 Aspera提交工具 创建bioproject 创建biosample 编写me ...
- linux开机自动加载igb模块,linux – 使用intel igb(已解决)在3/5 raid6 iSCSI NAS设备上的第一个RX队列上丢弃100%数据包...
编辑:问题已解决.有问题的队列已用于流控制数据包.为什么igb驱动程序传播FC数据包以使其丢弃(并计数)是另一个问题.但解决方案是,数据丢失的方式没有任何损失. 非常感谢syneticon-dj,你指 ...
- 分享一个在微信上捞几万块的操作
最近研究了下公积金,发现可以提取多余存款用来交房租,就在微信上就提了几万块. 如果你是在大城市工作的年轻人,每月扣完税到手工资不多,然后还要交不便宜的房租,短期内也没有买房需求,那也可以像我这样操作, ...
- 徐少春说,金蝶国际明年就成真正意义上的云计算公司
金蝶国际徐少春对外发言指出,2020年成为一家真正意义上的云计算公司. 你们信吗? 对于一个以财务软件起家的软件公司,如何转型到云计算领域的弄潮儿,其实这个事情的发展并不是金蝶所情愿的.毕竟用户依托云 ...
- 史上最详细大数据基础知识
# **1___Hive** ## 0.0.hive基本命令 ```sql [1.分区表] --创建分区 alter table table_name add partition(分区字段='分区值' ...
- C++: 有限元法 (FEM) 应用于线性两点 一个空间维度上的边界值问题 (附完整源码)
C++: 有限元法 (FEM) 应用于线性两点 一个空间维度上的边界值问题 # include <cstdlib> # include <iostream> # include ...
- linux卸载android studio,mac上完整卸载删除.简单粗暴无脑:androidstudio删除方案
如果你是mac ,你删除as ,删不干净也正常,你会发现安装的时候,前面的东西也在.配置文件在,会导致你以前的错误不想要的东西都在. 废话不多说,复制粘贴就是干!!!!~~~~~~~~ 第一步: 复 ...
- 法律意义上可靠的电子签名是如何实现的
目录 法律意义上可靠的电子签名是如何实现的 什么是法律意义上可靠的电子签名 什么是数字签名 什么是PKI体系 什么是公开密钥加密 一份电子文件的数字签名及加密传输过程 为什么是对Hash值加密,为什么 ...
- 自己造个真正意义上的AI纸片人离我们还有多远?
自己造个真正意义上的AI纸片人离我们还有多远? 我一直想自己"造"个可以像个人一样跟我聊天,当我想操作电脑或手机或玩游戏时,只要跟ta说,ta都能为我操作,还帮我玩游戏挂机--的纸 ...
- 孟岩:开源应该做到真正意义上的分布式协作
2018年7月4日-5日,由TokenSky组委会.日本游戏公司Asobimo.中国IT技术社区CSDN主办的「2018 TokenSky区块链大会·东京」在东京Belle Salle汐留隆重举行. ...
最新文章
- Javascript中的深拷贝和浅拷贝
- 【实战演练】两种方法让 Docker 帮您快速构建应用程序
- Windows 10强推新功能:能否让你的电脑更快
- 多布局怎么搭建_怎么制作网页?网页制作基本步骤
- Android Studio 安装说明
- Android 加载网页进度条
- Charles 破解版安装图解
- 蓝桥杯:第39级台阶
- winform自定义控件无法显示在工具箱中以及显示但使用时出错的解决办法
- 千锋python培训机构可靠吗
- java开发工程师p2级别_java开发工程师p2级别_Java程序员等级怎么划分?
- SpringCloud_Alibaba微服务学习---sentinel—流量卫兵
- 办公软件使用学习笔记:excel第四节。excel美化表格(智能表格,美化套路)。图表数据动态显示,迷你图、条件格式、动态图表、
- .Net中Web增加加密狗管理
- 客户体验和客户服务的区别
- QML遮罩效果Demo
- 深度学习(一)—— 深度学习概述
- Vue源码中的对象相等比较
- iris配置https访问
- 掌上题库V1.2.2全开源版本小程序带后端
热门文章
- linux中级之netfilter防火墙(firewalld)
- MySQL:BlackHole
- 从零开始的Python学习Episode 20——面向对象(3)
- 24 内置函数 命名元组(namedtuple) ,os ,sys,序列化,pickle,json
- Unity 移动 和 旋转 [小结]
- Python for Infomatics 第12章 网络编程四(译)
- JSON转Model内部实现解析
- Chinese_PRC
- 紧急救援 L2-001 dijkstra 打印路径 最短路条数 权值
- mysqldump导出数据