使用GridView自带的分页功能,需要激发PageIndexChanging

protected void gvNewsList_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
//获取当前页的索引。
gvNewsList.PageIndex = e.NewPageIndex;
bind();
}

GridView自带的排序功能
在页面代码中需要设置AllowSorting="True"
同时还需要在您要排序的列表头字段后写出排序字段如:
<asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID"/>
首先需要确定第一次加载的时候根据哪个字段进行升序还是降序
于是在首次加载时候需要存两个参数
代码如下:

if (!IsPostBack)
{
ViewState["SortOrder"] = "ID";
ViewState["OrderDire"] = "ASC";
this.bind();
}

在数据绑定方法bind()中,我们使用DateView来进行排序和存储数据。

protected void bind()
{
//调用CommonClass类的GetDataSet方法,查询需要管理的新闻信息,并绑定GridView控件上
//this.gvNewsList.DataSource = CC.GetDataSet("select * from tb_News order by id", "tbNews");
//this.gvNewsList.DataBind();
//实例化SqlDataAdapter对象
SqlDataAdapter da = new SqlDataAdapter("select * from tb_News", CC.GetConnection());
//实例化数据集
DataSet ds = new DataSet();
da.Fill(ds,"tb_News");
DataView dv = ds.Tables["tb_News"].DefaultView;
string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"];
dv.Sort = sort;
//绑定控件
this.gvNewsList.DataSource = dv;
this.gvNewsList.DataBind();
}

需要激发Sorting事件

protected void gvNewsList_Sorting(object sender, GridViewSortEventArgs e)
{
//获取指定的表达式,即字段。根据哪个字段来排列的。
string sPage = e.SortExpression;
if (ViewState["SortOrder"].ToString() == sPage)
{
if (ViewState["OrderDire"].ToString() == "Desc")
{
ViewState["OrderDire"] = "ASC";
}
else
{
ViewState["OrderDire"] = "Desc";
}
}
else
{
ViewState["SortOrder"] = sPage;
}
bind();
}

GridView自带的编辑事件。
1 编辑列的时候添加CommandField字段。编辑则设置其ShowEditButton属性为true,ShowEditButton为true。
2 使用GridView自带的编辑事件需要激活RowEditing事件
代码如下:

protected void gvNewsList_RowEditing(object sender, GridViewEditEventArgs e)
{
//设置GrideView控件的编辑项的索引为选择的当前索引
gvNewsList.EditIndex = e.NewEditIndex;
//数据绑定
bind();
}

3 单击取消更新按钮的话,需要激活RowCancelingEdit
代码如下:

protected void gvNewsList_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
//将当前编辑项的索引设为-1,则为取消编辑。
gvNewsList.EditIndex = -;
bind();
}

4 修改完毕数据,单击更新按钮需要激活RowUpdating事件
需要在页面中设置DataKeyNames: DataKeyNames="ID"
RowUpdating事件中的代码如下:

protected void gvNewsList_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
//获取id值
string id = gvNewsList.DataKeys[e.RowIndex].Value.ToString();
//获取文本框中输入的内容
string title = ((TextBox)(gvNewsList.Rows[e.RowIndex].Cells[].Controls[])).Text.Trim().ToString();
//获取类别
string style = ((TextBox)(gvNewsList.Rows[e.RowIndex].Cells[].Controls[])).Text.Trim().ToString();
//获取日期
string adddate = ((TextBox)(gvNewsList.Rows[e.RowIndex].Cells[].Controls[])).Text.Trim().ToString();
string sql = "update tb_News set title ='" + title + "', [Style]='" + style + "',issueDate=" + adddate + " where id = " + id;
CC.ExecSQL(sql);
//更新完成后退出编辑状态,重新绑定一次数据
gvNewsList.EditIndex = -;
bind();
}

高亮显示光标所在行

protected void gvNewsList_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onmouseover","currentcolor=this.style.backgroundColor;this.syle.backgroundColor='#6699ff'");
e.Row.Attributes.Add("onmouseout", "this.syle.backgroundColor=currentcolor");
}
}

设置GridView控件的数据显示格式
实现思路:主要在RowDataBound事件中实现。当数据源绑定到GridView控件中的每行时,将触发该控件的RowDataBound。修改或设置绑定到该行的数据的显示格式,可以使用RowDataBound事件的GridViewEventArgs e参数的Row属性的Cells属性定位到指定单元格。

protected void gvNewsList_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[].Text = Convert.ToDateTime(e.Row.Cells[].Text).ToString("yyyy-mm-dd");
}
}

货币的转换格式如下所示:string result = String.Format("{0,C2}",Convert.ToDouble(result));

单击GridView控件某行的按钮,刷新页面后不会回到页面顶端
网页刷新后维持原位置

<%@ Page Language="C#" MaintainScrollPositionOnPostback="true"%>

GridView自带删除事件,添加一个CommandField列并指名为“删除”按钮,单击该按钮时触发RowDeleting事件

 protected void gvNewsList_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string id = gvNewsList.DataKeys[e.RowIndex].Value.ToString();
string sql = "delete from tb_News where id = "+id;
CC.ExecSQL(sql);
bind();
}

在单击“删除”按钮的时候弹出确认框。

protected void gvNewsList_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
((LinkButton)(e.Row.Cells[].Controls[])).Attributes.Add("onclick","return confirm('确定要删除吗?')");
}
}

GridView的初级使用的更多相关文章

  1. GridView控件详解

    一.介绍 GridView控件一表格形式显示数据源中的数据.提供对列进行排序.分页以及编辑.删除单个记录的功能. 二.绑定数据源 第一种使用DataSourceID属性.可以直接把GridView控件 ...

  2. Android GridView 通过seletor 设置状态和默认状态

    Android中可以通过selector控制GridView Item 的状态,而省去使用代码控制 GridView View Selector Xml文件 <?xml version=&quo ...

  3. Asp.Net 操作XML文件的增删改查 利用GridView

    不废话,直接上如何利用Asp.NET操作XML文件,并对其属性进行修改,刚开始的时候,是打算使用JS来控制生成XML文件的,但是最后却是无法创建文件,读取文件则没有使用了 index.aspx 文件 ...

  4. 在DevExpress程序中使用GridView直接录入数据的时候,增加列表选择的功能

    在我上篇随笔<在DevExpress程序中使用Winform分页控件直接录入数据并保存>中介绍了在GridView以及在其封装的分页控件上做数据的直接录入的处理,介绍情况下数据的保存和校验 ...

  5. Android listview和gridview以及view的区别

    GridView 可以指定显示的条目的列数. listview一般显示的条目的列数都是一列 如果是列表(单列多行形式)的使用ListView,如果是多行多列网状形式的优先使用GridView andr ...

  6. 马哥linux运维初级+中级+高级 视频教程 教学视频 全套下载(近50G)

    马哥linux运维初级+中级+高级 视频教程 教学视频 全套下载(近50G)目录详情:18_02_ssl协议.openssl及创建私有CA18_03_OpenSSH服务及其相关应用09_01_磁盘及文 ...

  7. 在ASP.NET MVC5中实现具有服务器端过滤、排序和分页的GridView

    背景 在前一篇文章<[初学者指南]在ASP.NET MVC 5中创建GridView>中,我们学习了如何在 ASP.NET MVC 中实现 GridView,类似于 ASP.NET web ...

  8. 【初学者指南】在ASP.NET MVC 5中创建GridView

    介绍 在这篇文章中,我们将会学习如何在 ASP.NET MVC 中创建一个 gridview,就像 ASP.NET Web 表单中的 gridview 一样.服务器端和客户端有许多可用的第三方库,这些 ...

  9. ScrollView嵌套ListView,GridView数据加载不全问题的解决

    我们大家都知道ListView,GridView加载数据项,如果数据项过多时,就会显示滚动条.ScrollView组件里面只能包含一个组件,当ScrollView里面嵌套listView,GridVi ...

随机推荐

  1. linux中用户信息及密码相关知识

    在linux中若修改用户信息.密码,组群信息.密码等.其实是在修改/etc/passwd,/etc/shadow,/etc/group,/etc/groupshadow等文件的内容. 这四个文件的意思 ...

  2. 转:mysql性能优化的19个要点

    原文来自于:http://outofmemory.cn/mysql/mysql-performance-tips 1.为查询优化你的查询 大多数的MySQL服务器都开启了查询缓存.这是提高性最有效的方 ...

  3. Thinking In Java 学习笔记 1-5 章

    第1章 对象导论 本章主要讲OOP的思想及一些OOP基本概念 1.抽象过程:万物都是对象,对象具有状态.行为和标识.对象拥有属性和方法,以及在内存中的唯一地址. 2.每个对象都有一个接口:通过接口给对 ...

  4. Node.js入门实例程序

    在使用Node.js创建实际“Hello, World!”应用程序之前,让我们看看Node.js的应用程序的部分.Node.js应用程序由以下三个重要组成部分: 导入需要模块: 我们使用require ...

  5. [BZOJ 1874] [BeiJing2009 WinterCamp] 取石子游戏 【博弈论 | SG函数】

    题目链接:BZOJ - 1874 题目分析 这个是一种组合游戏,是许多单个SG游戏的和. 就是指,总的游戏由许多单个SG游戏组合而成,每个SG游戏(也就是每一堆石子)之间互不干扰,每次从所有的单个游戏 ...

  6. 设置android状态栏颜色和toolbar颜色一致

    使用:https://github.com/jgilfelt/SystemBarTint在Activity中:@Overrideprotected void onCreate(Bundle saved ...

  7. Unity3d 跑酷游戏 之Character Controller篇

    unity3d  Character Controller @by  广州小龙 做3D跑酷游戏,也慢慢的学习了一些东西,从开发过程中积累了一些小的知识点跟大家分享一下! 1. 这个Revert按钮的意 ...

  8. Unity NGUI实现Tabview

    unity版本:4.5.1 NGUI版本:3.5 参考链接:http://blog.csdn.net/g__dragon/article/details/17242969,作者:CSDN G_Drag ...

  9. java程序:set改造成map

    逻辑:       set是无序不重复数据元素的集合.       map是另一种set,如果将<key,value>看成一个整体的话,其实就是set.在map中,若用map的keyset ...

  10. redis数据过期策略【转】

    key的过期时间通常,Redis key被创建时不会自动关联过期时间,key将长久存在,除非通过DEL等命令显示的删除.EXPIRE命令簇可以为指定的key关联一个过期时间,代价是一点额外的内存开销. ...