使用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. 3ds max 2016 新功能

    3ds max 2016 新功能_MCG节点编辑器 这是介绍视频下载: http://pan.baidu.com/s/1gds4wqJ

  2. Unity问答——NGUI怎么使用按键模拟鼠标点击?

    这篇博客源自我在泰课在线的回答.链接:http://www.taikr.com/group/1/thread/248 问:NGUI怎么模拟用代码模拟控制点击 答: 1. 这个问题问得好.因为在使用按键 ...

  3. IIS短文件名漏洞修补方法之一改注册表一个注意项

    1)1.png 为漏洞存在没有做任何修复的时候的扫描 修复:2) 修改注册表键值: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSy ...

  4. Expert Shell Scripting

    Expert Shell Scripting 好好学习这本书

  5. A Statistical View of Deep Learning (V): Generalisation and Regularisation

    A Statistical View of Deep Learning (V): Generalisation and Regularisation We now routinely build co ...

  6. iso 开发学习--简易音乐播放器(基于iPhone4s屏幕尺寸)

    三个按钮  一个进度条 贴图(软件中部分图片,来自网络,如果侵犯了您的权益,请联系我,会立刻撤下) 核心代码 // // ViewController.m // 08-10-MusicPlayer / ...

  7. MYSQL的binary解决mysql数据大小写敏感问题 《转载》

    BINARY不是函数,是类型转换运算符,它用来强制它后面的字符串为一个二进制字符串,可以理解为在字符串比较的时候区分大小写如下:mysql> select binary 'ABCD'='abcd ...

  8. 分页查询SQL

    SELECT * FROM ( SELECT   T.*,   ROWNUMBER() OVER() AS ROWNUM   FROM   ( SELECT     L4_GDS_GROUP_CD C ...

  9. github上的一些Delphi开源项目

    https://github.com/FMXExpress?tab=repositorieshttps://github.com/stars/maurobottahttps://github.com/ ...

  10. BPMN 2.0规范

    .1. BPMN 2.0是什么呢? 业务流程模型注解(Business Process Modeling Notation - BPMN)是 业务流程模型的一种标准图形注解.这个标准 是由对象管理组( ...