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

<!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>Gridview Page</title>
<link href="~/CSS/Gridview.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<div id="container">
<asp:GridView ID="GridView1" ShowFooter="false" BorderColor="Black" OnRowDataBound="GridView1_RowDataBound" runat="server" AutoGenerateColumns="False" Font-Size="12px" Width="549px" AllowPaging="True" >
<Columns>
<asp:BoundField DataField="ID" HeaderText="编号" />
<asp:BoundField DataField="EmpID" HeaderText="账号" />
<asp:BoundField DataField="EmpRealName" HeaderText="姓名" />
<asp:BoundField DataField="EmpSex" HeaderText="性别" />
<asp:BoundField DataField="EmpAddress" HeaderText="住址" />
<asp:BoundField DataField="EmpZipCode" HeaderText="邮编" />
<asp:BoundField DataField="EmpBirthday" HeaderText="生日" DataFormatString="{0:yyyy-MM-dd}" HtmlEncode="False" />
<asp:BoundField DataField="EmpSalary" HeaderText="薪水" DataFormatString="{0:c}" HtmlEncode="False" />
</Columns>
<HeaderStyle BackColor="Azure" Font-Size="12px" HorizontalAlign="Center" />
<RowStyle HorizontalAlign="Center" />
<PagerStyle HorizontalAlign="Center" BackColor="#FFFFCC" BorderStyle="None" BorderWidth="0px" ForeColor="#330099" />
<PagerSettings Visible="False" />
</asp:GridView>
<br />
<asp:LinkButton ID="lnkbtnFrist" runat="server" OnClick="lnkbtnFrist_Click">首页</asp:LinkButton>
<asp:LinkButton ID="lnkbtnPre" runat="server" OnClick="lnkbtnPre_Click">上一页</asp:LinkButton>
<asp:Label ID="lblCurrentPage" runat="server"></asp:Label>
<asp:LinkButton ID="lnkbtnNext" runat="server" OnClick="lnkbtnNext_Click">下一页</asp:LinkButton>
<asp:LinkButton ID="lnkbtnLast" runat="server" OnClick="lnkbtnLast_Click">尾页</asp:LinkButton>
跳转到第<asp:DropDownList ID="ddlCurrentPage" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
</asp:DropDownList>页
</div>
</form>
</body>
</html>
 using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
/// <summary>
/// Author:匆匆 Blog:http://www.cnblogs.com/huangjianhuakarl/
/// Gridview自定义分页页码
/// </summary>
public partial class GridviewPage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bind();
}
}
/// <summary>
/// 绑定数据
/// </summary>
public void bind()
{
string sqlStr = "select * from Employee";
DataSet myds = Common.dataSet(sqlStr);
GridView1.DataSource = myds;
GridView1.DataKeyNames = new string[] { "ID" };
GridView1.DataBind();
this.ddlCurrentPage.Items.Clear();
for (int i = ; i <= this.GridView1.PageCount; i++)
{
this.ddlCurrentPage.Items.Add(i.ToString());
}
this.ddlCurrentPage.SelectedIndex = this.GridView1.PageIndex;
}
/// <summary>
/// 在 GridView 控件中的某个行被绑定到一个数据记录时发生。此事件通常用于在某个行被绑定到数据时修改该行的内容。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
this.lblCurrentPage.Text = string.Format("当前第{0}页/总共{1}页", this.GridView1.PageIndex + , this.GridView1.PageCount); //遍历所有行设置边框样式
foreach (TableCell tc in e.Row.Cells)
{
tc.Attributes["style"] = "border-color:Black";
}
//用索引来取得编号
if (e.Row.RowIndex != -)
{
int id = GridView1.PageIndex * GridView1.PageSize + e.Row.RowIndex + ;
e.Row.Cells[].Text = id.ToString();
} }
/// <summary>
/// 重新绑定
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
this.GridView1.PageIndex = this.ddlCurrentPage.SelectedIndex;
bind();
}
protected void lnkbtnFrist_Click(object sender, EventArgs e)
{
this.GridView1.PageIndex = ;
bind();
}
protected void lnkbtnPre_Click(object sender, EventArgs e)
{
if (this.GridView1.PageIndex > )
{
this.GridView1.PageIndex = this.GridView1.PageIndex - ;
bind();
}
}
protected void lnkbtnNext_Click(object sender, EventArgs e)
{
if (this.GridView1.PageIndex < this.GridView1.PageCount)
{
this.GridView1.PageIndex = this.GridView1.PageIndex + ;
bind();
}
}
protected void lnkbtnLast_Click(object sender, EventArgs e)
{
this.GridView1.PageIndex = this.GridView1.PageCount;
bind();
}
}
 91 单元格中触发的事件,并且两个窗体之间的传值
92 private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
93 {
94 string name=dataGridView1[1, dataGridView1.CurrentCell.RowIndex].Value.ToString();
95 string psw=dataGridView1[2, dataGridView1.CurrentCell.RowIndex].Value.ToString();
96 Form1 form1 = new Form1();//这里是两个窗体之间传递值,需要设置两个字段
97 form1.name = name;
98 form1.psw = psw;
99 form1.Show();
100 }
101 获得当前单元格的内容也就是当前行第一列的值
102 Console.WriteLine(DataGridView1.CurrentCell.Value);
103 // 取得当前单元格的列 Index
104 Console.WriteLine(DataGridView1.CurrentCell.ColumnIndex);
105 // 取得当前单元格的行 Index
106 Console.WriteLine(DataGridView1.CurrentCell.RowIndex);
107 ' 删除名为"Column1"的列
108 DataGridView1.Columns.Remove("Column1");
109 ' 删除第一列
110 DataGridView1.Columns.RemoveAt(0);
111 移除当前行
112 this.dataGridView1.Rows.Remove(this.dataGridView1.CurrentRow);
113 ' 删除第一行
114 DataGridView1.Rows.RemoveAt(0);
115 获得此格的内容
116 DataGridView1【0,0】;
117 dataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.MistyRose;//偶数行显示
118 dataGridView1.RowsDefaultCellStyle.BackColor = Color.MistyRose;//奇数行显示
119 显示选择的行
120
128 DataGridView的异常处理
129 1、 CellFormatting事件,每绘制一个单元格系统自动触发此事件
130 private void buttonCellValidating_Click(object sender, EventArgs e)
131 {
132 dataGridView1.CellValidating +=
133 new DataGridViewCellValidatingEventHandler(CellValidating);
134 MessageBox.Show("");
135
136 }
137 private void CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
138 {
139 string errorMessage = "";
140 if (dataGridView1.Columns[e.ColumnIndex].Name == "学号")
141 {
142 if (e.FormattedValue == null)
143 {
144 errorMessage = "不允许空值";
145 }
146 else
147 {
148 string xuehao = e.FormattedValue.ToString();
149 if (xuehao.Length != 8)
150 {
151 errorMessage = "学号必须为8位数字";
152 }
153 else
154 {
155 for (int i = 0; i < xuehao.Length; i++)
156 {
157 if (char.IsDigit(xuehao[i]) == false)
158 {
159 errorMessage = "学号必须为8位数字";
160 break;
161 }
162 }
163 }
164 }
165 }
166 2、DataError事件,如果用户输入了不符合数据源规定的内容,系统在验证数据时就会产生异常
167 3、CellVaildating事件,当用户提交数据时响应这些事件
168
169
170
171
172 if (errorMessage.Length > 0)
173 {
174 MessageBox.Show(errorMessage, string.Format("第{0}行第{1}列有错",
175 e.RowIndex, e.ColumnIndex));
176 dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].ErrorText = errorMessage;//如果用户输入的值无效就可以触发这些事件
177 }
178 else
179 {
180 dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].ErrorText = null;
181 }
private void dataGridView1_MouseClick(object sender, MouseEventArgs e)
{
DataGridView.HitTestInfo h = dataGridView1.HitTest(e.X, e.Y);
if (h.Type== DataGridViewHitTestType.Cell || h.Type == DataGridViewHitTestType.RowHeader)
{
dataGridView1.Rows[h.RowIndex].Selected = true;
//鼠标点时可以获得一行数据,不管点任何一行都是一行数据
int processeId = (int)dataGridView1.CurrentRow.Cells[0].Value;
ShowProcessInfo(Process.GetProcessById(processeId));
}
}

GridView分页排序的更多相关文章

  1. gridview自定义排序

    效果如图: 首先允许排序:AllowSorting="True":开启gridview的排序事件onsorting="GridView1_Sorting",也可 ...

  2. asp.net gridview 分页显示不出来的问题

    使用gridview分页显示,在点击第二页的时候显示空白,无数据. 原因是页面刷新,绑定datatable未执行 解决方法: 1.将datatable设置为静态 2.在OnPageIndexChang ...

  3. C#拼接SQL语句,SQL Server 2005+,多行多列大数据量情况下,使用ROW_NUMBER实现的高效分页排序

    /// <summary>/// 单表(视图)获取分页SQL语句/// </summary>/// <param name="tableName"&g ...

  4. 对于Oracle中分页排序查询语句执行效率的比较分析

    转自:http://bbs.csdn.net/topics/370033478 对于Oracle中分页排序查询语句执行效率的比较分析 作者:lzgame 在工作中我们经常遇到需要在Oracle中进行分 ...

  5. lucene 查询+分页+排序

    lucene 查询+分页+排序 1.定义一个工厂类 LuceneFactory 1 import java.io.IOException; 2 3 import org.apache.lucene.a ...

  6. ligerUI---ligerGrid分页排序的使用(从后台获取数据显示)

    写在前面: 最近项目的前框框架用的是ligerUI,里面用到了ligerGrid表格,下面就来说说从后台获取数据并在前台页面进行完美展示.啊哈哈哈..(天啦,坐我旁边的丽姐貌似炒股 一个月可以搞几十万 ...

  7. Oracle rownum 分页, 排序

    Oracle rownum 分页, 排序 什么是rownum, rownum的生成, rownum相关的符号操作 Rownum是oracle生成结果集时得到的一个伪列, 按照读出行的顺序, 第一条ro ...

  8. Android GridView 分页加载数据

    android UI 往右滑动,滑动到最后一页就自动加载数据并显示 如图: package cn.anycall.ju; import java.util.ArrayList; import java ...

  9. bootstrapTable的数据后端分页排序

    数据后端分页排序,其实就是sql语句中oeder by做一些限制. 之前在写sql语句中的order by是写死,既然要写活,就要传参数到后台. 之前讲到bootstrapTable的queryPar ...

随机推荐

  1. 解析mysql索引

    在mysql中,索引是存储引擎用于快速查找到目标记录的一种数据结构.常见的索引类型包含B树索引.哈希索引.空间索引(R-Tree).全文索引等. 索引是在存储引擎层实现的,不同的存储引擎对索引的工作方 ...

  2. JQuery EasyUI 之 DataGrid

    1.动态创建datagrid 在页面上添加一个div或table标签,然后用jquery获取这个标签,并初始化一个datagrid.代码如下: (1)页面上添加div标签 <div id=&qu ...

  3. How to update FVDI Commander driver to latest V2015.6.2

    As FVDI Commander products are upgraded to new versions, I often receive emails from customers askin ...

  4. cocos2d-x使用ant批量打包

    当项目需要在多渠道上线时,要打很多的渠道包,少则几十个,多种几百个.它们的区别一般只是渠道id或部分配置信息不同,这些信息均可写在配置文件中. 例如常见的渠道id不同,一般定义在AndroidMani ...

  5. Android进阶笔记06:Android 实现扫描二维码实现网页登录

    一. 扫描二维码登录的实现机制: 详细流程图: (1)PC端打开网页(显示出二维码),这时候会保存对应的randnumber(比如:12345678). (2)Android客户端扫码登录,Andro ...

  6. oracle函数、包、变量的定义和使用、重点”结构体和数组”

    函数 实例1:输入雇员的姓名,返回该雇员的年薪 create function fun1(spName varchar2) ,); begin +nvl(comm,) into yearSal fro ...

  7. 学习SDAutoLayout第三方库的用法总结

    ---恢复内容开始--- 在做图文混排计算高度我觉得SDAutoLayout布局是最好用的第三方库了,这里学习SDAutoLayout用法总结一下 用法介绍: ) 方法名中带有“SpaceToView ...

  8. 阅读《RobHess的SIFT源码分析:综述》笔记2

    今天开始磕代码部分. part1: 1. sift特征提取. img1_Feat = cvCloneImage(img1);//复制图1,深拷贝,用来画特征点 img2_Feat = cvCloneI ...

  9. JavaScript中常用函数(入门级)(持续更新)

    本文中枫竹梦介绍一些JavaScript中入门级的常用函数,对于已经过了入门的童鞋可选择略过,都是一些非常实用的函数.如果发现什么问题,欢迎讨论. 问题列表 Q1: 设计一个函数repeatIt(st ...

  10. MSP430常见问题之通信类

    Q1: 430 串口中,有个R/D 控制线,在接收上位机的数据,但本身的数据有无发送完毕不知道啊,什么时候才可置低R/d 位来接收数据啊?好像430 没有发送完中断标志A1:字节主动发送,一般都能发出 ...