博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GridView分页排序
阅读量:4315 次
发布时间:2019-06-06

本文共 6666 字,大约阅读时间需要 22 分钟。

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="GridviewPage.aspx.cs" Inherits="GridviewPage" %>    Gridview Page    
首页
上一页
下一页
尾页
跳转到第
1 using System; 2 using System.Data; 3 using System.Configuration; 4 using System.Collections; 5 using System.Web; 6 using System.Web.Security; 7 using System.Web.UI; 8 using System.Web.UI.WebControls; 9 using System.Web.UI.WebControls.WebParts;10 using System.Web.UI.HtmlControls;11 /// 12 /// Author:匆匆  Blog:http://www.cnblogs.com/huangjianhuakarl/13 /// Gridview自定义分页页码14 /// 15 public partial class GridviewPage : System.Web.UI.Page16 {17     protected void Page_Load(object sender, EventArgs e)18     {19         if (!IsPostBack)20         {21             bind();22         }23     }24     /// 25     /// 绑定数据26     /// 27     public void bind()28     {29         string sqlStr = "select * from Employee";30         DataSet myds = Common.dataSet(sqlStr);31         GridView1.DataSource = myds;32         GridView1.DataKeyNames = new string[] { "ID" };33         GridView1.DataBind();34         this.ddlCurrentPage.Items.Clear();35         for (int i = 1; i <= this.GridView1.PageCount; i++)36         {37             this.ddlCurrentPage.Items.Add(i.ToString());38         }39         this.ddlCurrentPage.SelectedIndex = this.GridView1.PageIndex;40     }41     /// 42     /// 在 GridView 控件中的某个行被绑定到一个数据记录时发生。此事件通常用于在某个行被绑定到数据时修改该行的内容。43     /// 44     /// 45     /// 46     protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)47     {48         this.lblCurrentPage.Text = string.Format("当前第{0}页/总共{1}页", this.GridView1.PageIndex + 1, this.GridView1.PageCount); 49 50         //遍历所有行设置边框样式51         foreach (TableCell tc in e.Row.Cells)52         {53             tc.Attributes["style"] = "border-color:Black";54         }55         //用索引来取得编号56         if (e.Row.RowIndex != -1)57         {58             int id = GridView1.PageIndex * GridView1.PageSize + e.Row.RowIndex + 1;59             e.Row.Cells[0].Text = id.ToString();60         }61         62     }63     /// 64     /// 重新绑定65     /// 66     /// 67     /// 68     protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)69     {70         this.GridView1.PageIndex = this.ddlCurrentPage.SelectedIndex;71         bind();72     }73     protected void lnkbtnFrist_Click(object sender, EventArgs e)74     {75         this.GridView1.PageIndex = 0;76         bind();77     }78     protected void lnkbtnPre_Click(object sender, EventArgs e)79     {80         if (this.GridView1.PageIndex > 0)81         {82             this.GridView1.PageIndex = this.GridView1.PageIndex - 1;83             bind();84         }85     }86     protected void lnkbtnNext_Click(object sender, EventArgs e)87     {88         if (this.GridView1.PageIndex < this.GridView1.PageCount)89         {90             this.GridView1.PageIndex = this.GridView1.PageIndex + 1;91             bind();92         }93     }94     protected void lnkbtnLast_Click(object sender, EventArgs e)95     {96         this.GridView1.PageIndex = this.GridView1.PageCount;97         bind();98     } 99 }

 

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));            }        }

 

 

转载于:https://www.cnblogs.com/zhao123/p/3358143.html

你可能感兴趣的文章
Lucene、ES好文章
查看>>
android 生命周期
查看>>
jquery--this
查看>>
MySQL 5.1参考手册
查看>>
TensorFlow安装流程(GPU加速)
查看>>
OpenStack的容器服务体验
查看>>
【BZOJ 4059】 (分治暴力|扫描线+线段树)
查看>>
BZOJ 1066 蜥蜴(网络流)
查看>>
提高批量插入数据的方法
查看>>
Linux重启Mysql命令
查看>>
前端模块化:RequireJS(转)
查看>>
应用程序缓存的应用(摘抄)
查看>>
jQuery基础知识,很赞的!!!
查看>>
JK_Rush关于索引的一些总结
查看>>
[Codevs] 线段树练习5
查看>>
Amazon
查看>>
component-based scene model
查看>>
Echart输出图形
查看>>
hMailServer搭建简单邮件系统
查看>>
从零开始学习jQuery
查看>>