`
isiqi
  • 浏览: 16623355 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

GridView常用操作与技巧---格式化突出显示、增删改、排序、编号、换行、对话框、翻页、求和等

阅读更多

1、格式化日期显示:

asp.net 2.0中,如果要在绑定列中显示比如日期格式等,htmlencode设置为false,否则显示不了

默认设置为true,已防止XSS攻击,安全起见而用的,也可以用下列的模版列

<asp:TemplateField HeaderText="出生日期">

<ItemTemplate>

<asp:Label ID="Label1" runat="server"

Text='<%# Bind("FUserBirthDate","{0:yyyy-MM-dd}") %>'></asp:Label>

</ItemTemplate>

</asp:TemplateField>

2HyperLinkField属性详解:

1DataNavigateUrlFields:绑定到连接NavigateUrl属性的字段。其实就是指定,

DataNavigateUrlFormatString所设置的URL地址后面的参数,多个参数用逗号分隔,如:FUserID,FUserName

2DataNavigateUrlFormatString:指定跳转的URL地址。如:

Default2.aspx?FUserID={0}&FUserName={1}

3DataTextField:绑定到超链接的文本字段

4Text:设置超链接上的文本,如果DataTextField没设置则显示此文本,如果DataTextField设置了,则显示数据库中对应字段的内容

3、常用格式化公式:

{0:C} 货币

{0:D4} 0填充的4个字符宽的字段中显示整数;

{0:000.0}四舍五入小数点保留第几位有效数字;000.0小数点占一位,整数部分3个宽度,小于此宽度,前面补0,例:23.82格式化为023.8

{0:N2} 小数点保留2位有效数字;{0:N2}% 小数点保留2位有效数字加百分号;

{0:D}长日期;{0:d}短日期;{0:yy-MM-dd} 例如:

1977-7-20{0:D}格式化后是1977720

1977-7-20{0:d}格式化后是1977-7-20

1977-7-20{0:yyyy-MM-dd}格式化后是1977-07-20

4、弹出查看详细对话框:

新窗口参数:window.open (url,null,'height=600,width=350,toolbar=no,menubar=no,

scrollbars=yes,resizable=yes,location=no,status=no');

例如:

<a href="#" onclick="javascript:varwin=window.open('Default2.aspx?FUserID=

<%#Eval("FUserID")%>',null,'width=600,height=350');">查看</a>

5、单元格内容换行:

正常换行,在Page_Load事件里设置:

GridView1.Attributes.Add("style", "word-break:keep-all;word-wrap:normal");

自动换行,在Page_Load事件里设置:

GridView1.Attributes.Add("style", "word-break:break-all;word-wrap:break-word");

指定某一列换行,在RowDataBound事件里设置:

e.Row.Cells[4].Style.Add("word-break", "break-all");

6、点击某标题排序:

1、首先设置此的SortExpression属性,指定排序字段,如:<asp:BoundField DataField="FUserName" HeaderText="姓名" SortExpression="FUserName" />

2、利用ViewState保存排序相关信息

3、书写相关代码

Page_Load事件部分

if (Page.IsPostBack == false)

{

ViewState["SortOrder"] = "FUserId"; //默认排序字段

ViewState["OrderDire"] = "ASC";

Bind();

}

绑定信息部分

public void Bind()

{

string strSql = "select * from TUser ";

DataSet ds = DbHelperOleDb.Query(strSql);//DbHelperOleDb.Query(strSql);

//为了排序获得DataView

DataView dv = ds.Tables[0].DefaultView;

//指定排序字段和方向

dv.Sort = ViewState["SortOrder"].ToString() + " " + ViewState["OrderDire"].ToString();

//GridView1.DataKeyNames = new string[] { "FUserId" }; 在设计页设了此属性,此处略

GridView1.DataSource = dv;

GridView1.DataBind();

}

排序事件部分

protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)

{

if (ViewState["SortOrder"].ToString() == e.SortExpression)

{

ViewState["OrderDire"] = (ViewState["OrderDire"].ToString() == "Desc") ? "ASC" : "Desc";

}

else

{

ViewState["SortOrder"] = e.SortExpression;

}

Bind();

}

7GridView里的下拉列表框DropDownList中的数据显示

//显示性别下拉列表

DropDownList ddl;

for (int i = 0; i < GridView1.Rows.Count; i++)

{

DataRowView drv = ds.Tables[0].DefaultView[i];

if (drv["FUserSex"].ToString() == "")

{

ddl = (DropDownList)GridView1.Rows[i].FindControl("ddlSex");

ddl.SelectedIndex = 0;

}

if (drv["FUserSex"].ToString() == "")

{

ddl = (DropDownList)GridView1.Rows[i].FindControl("ddlSex");

ddl.SelectedIndex = 1;

}

}

8、突出显示某一单元格(例如金额低于多少,分数不及格等)

//突出显示起薪小于1000

for (int i = 0; i <GridView1.Rows.Count; i++)

{

DataRowView drv = ds.Tables[0].DefaultView[i];

if (Convert.ToDouble(drv["FUserSalary"].ToString()) < 1000.00)

{

GridView1.Rows[i].Cells[7].BackColor = System.Drawing.Color.Red;

}

}

9、自动求和求平均值小计

//加入自动求和求平均值小计

for (int i = 0; i < GridView1.Rows.Count; i++)

{

DataRowView drv = ds.Tables[0].DefaultView[i];

if (String.IsNullOrEmpty(drv["FUserSalary"].ToString()) == false)

{

sum += Convert.ToDouble(drv["FUserSalary"].ToString());

}

}

Label3.Text =""+ sum.ToString("f2");

10、点编辑按钮后,单元格显示相关控件

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)

{

GridView1.EditIndex = e.NewEditIndex;

Bind();

}

11、取消编辑

protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)

{

GridView1.EditIndex = -1;

Bind();

}

12、删除数据

protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)

{

string strSql = "delete from TUser where FUserID='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";

DbHelperOleDb.ExecuteSql(strSql);

Bind();

}

13、更新数据

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)

{

string strSql = "update Tuser set FUserSex='" +

//查找模板列的ddlSex控件,用FindControl方法

(GridView1.Rows[e.RowIndex].FindControl("ddlSex") as DropDownList).SelectedItem.Value + "',FUserName='" +

//以下两种数据类型转换都可以

(GridView1.Rows[e.RowIndex].Cells[3].Controls[0] as TextBox).Text.Trim() + "',FUserAddress='" +

((TextBox)(GridView1.Rows[e.RowIndex].Cells[5].Controls[0])).Text.Trim() + "',FUserBirthDate='" +

(GridView1.Rows[e.RowIndex].Cells[6].Controls[0] as TextBox).Text.Trim() + "',FUserSalary=" +

//查找模板列编辑项的txtUserSalary控件,也用FindControl方法

(GridView1.Rows[e.RowIndex].FindControl("txtUserSalary") as TextBox).Text.Trim() + " where FUserID='" +

GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";

DbHelperOleDb.ExecuteSql(strSql);

GridView1.EditIndex = -1;

Bind();

}

14全选

protected void CheckBox2_CheckedChanged(object sender, EventArgs e)

{

for (int i = 0; i < GridView1.Rows.Count; i++)

{

CheckBox cb = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");

cb.Checked = (CheckBox2.Checked == true) ? true : false;

}

}

15、取消全选

protected void Button1_Click(object sender, EventArgs e)

{

CheckBox2.Checked = false;

for (int i = 0; i < GridView1.Rows.Count; i++)

{

CheckBox cb = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");

cb.Checked = false;

}

}

16、删除选择项

protected void Button2_Click(object sender, EventArgs e)

{

for (int i = 0; i < GridView1.Rows.Count; i++)

{

CheckBox cb = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");

if (cb.Checked == true)

{

string strSql = "delete from TUser where FUserID='" +

GridView1.DataKeys[i].Value + "'";

DbHelperOleDb.ExecuteSql(strSql);

}

}

Bind();

}

17、显示隐藏某一列

protected void CheckBox3_CheckedChanged(object sender, EventArgs e)

{

GridView1.Columns[5].Visible = CheckBox3.Checked;

}

18、鼠标移到GridView某一行时改变该行的背景色

GridView1_RowDataBound事件中书写以下代码

//方法一:i=0第一条数据行背景不变色,使用要从i=-1开始

for (int i = -1; i < GridView1.Rows.Count; i++)

{

//判断是否是数据行

if (e.Row.RowType == DataControlRowType.DataRow)

{

//当鼠标停留时更改背景色

e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#00A9FF'");

//当鼠标移开时还原背景色

e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c");

}

}

//方法二:如果是绑定数据行

if (e.Row.RowType == DataControlRowType.DataRow) //e.Row.RowType != DataControlRowType.Header

{

//鼠标经过时,行背景色变

e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#00A9FF'");

//鼠标移出时,行背景色变

e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#FFFFFF'");

}

19、弹出对话框

GridView1_RowDataBound事件中书写以下代码

//实现删除时弹出确认对话框

if (e.Row.RowType == DataControlRowType.DataRow)

分享到:
评论

相关推荐

    gridview使用技巧、gridview使用大全、gridview常用问题、gridview常用方法

    在本文中,我们将深入探讨GridView的使用技巧、大全、常见问题以及常用方法,旨在帮助开发者更好地理解和应用这一强大的工具。 1. GridView简介: GridView控件允许用户以表格的形式显示数据,通常与数据源(如...

    GridView一般换行与强制换行

    本文将深入探讨GridView的一般换行与强制换行策略,帮助开发者更好地理解和应用这些技术。 #### 一、一般换行(Normal Line Break) GridView默认的行为是在内容超出单元格宽度时进行自然换行,但这种换行方式仅...

    GridView 72般绝技 - 狼族 - 博客园

    GridView无代码分页排序 GridView选中,编辑,取消,删除 ...GridView突出显示某一单元格(例如金额低于多少,分数不及格等) GridView加入自动求和求平均值小计 GridView数据导入Excel/Excel数据读入GridView

    Gridview72绝技gridview常用用法

    ### Gridview72绝技详解:全面掌握Gridview的实用技巧 #### 1. GridView无代码分页排序 - **核心知识点**:本节主要介绍了如何在不编写任何后端代码的情况下实现Gridview的分页与排序功能。这对于提高前端开发效率...

    上百种GridView操作绝技

    快速预览: GridView无代码分页排序 GridView选中,编辑,取消,...GridView突出显示某一单元格(例如金额低于多少,分数不及格等) GridView加入自动求和求平均值小计 GridView数据导入Excel/Excel数据读入GridView

    GridView控件功能(详解--增--删--改--查)

    GridView是ASP.NET中的一种强大的数据展示控件,用于在网页上以表格形式显示数据,并提供了丰富的功能,包括数据的添加(Add)、删除(Delete)、修改(Edit)和查询(Select)。在本文中,我们将深入探讨GridView...

    GridView72种使用技巧.

    ### GridView72种使用技巧详解 #### 1. GridView无代码分页排序 - **功能简介**:在不编写任何后端代码的情况下实现GridView的分页和排序功能。 - **设置步骤**: - 在ASPX文件中设置`GridView`控件的属性`...

    gridview一般换行,强制换行

    通过对`GridView`中一般换行与强制换行机制的理解和实践,我们可以更好地控制文本的显示效果,提升用户体验。根据具体需求选择合适的方式,并注意代码的执行效率和浏览器兼容性,是实现良好视觉效果的关键。

    B/S GridView开发技巧

    GridView无代码分页排序 GridView选中,编辑,取消,删除 ...GridView突出显示某一单元格(例如金额低于多少,分数不及格等) GridView加入自动求和求平均值小计 GridView数据导入Excel/Excel数据读入GridView

    C#精髓【月儿原创】第四讲 GridView 72般绝技

    在ASP.NET开发中,GridView控件是一种常用的数据展示组件,能够方便地对数据进行各种操作,如分页、排序、编辑、删除等。本文将深入探讨GridView的多个核心功能,帮助开发者掌握其精髓。 1. **无代码分页排序**: ...

    安卓gridview相关相关-GridView-带标题栏的-TV-控件.rar

    在Android开发中,GridView是一种非常常见的布局控件,它允许我们以网格的形式展示数据,通常用于创建类似照片墙、应用列表等界面。本资源“安卓gridview相关相关-GridView-带标题栏的-TV-控件.rar”似乎包含了一个...

    GridView 常见应用技巧

    GridView无代码分页排序 GridView选中,编辑,取消,删除 ...GridView突出显示某一单元格(例如金额低于多少,分数不及格等) GridView加入自动求和求平均值小计 GridView数据导入Excel/Excel数据读入GridView

    C# GridView 76种绝技必杀

    C# GridView 的各种技巧 快速预览: GridView无代码分页排序 ...GridView突出显示某一单元格(例如金额低于多少,分数不及格等) GridView加入自动求和求平均值小计 GridView数据导入Excel/Excel数据读入GridView

    GridView表格的各种使用技巧

    本篇文章将深入探讨GridView的各种使用技巧,包括无代码分页排序、选中、编辑、取消、删除操作,以及与下拉菜单、CheckBox的结合使用。此外,还会讲解如何在鼠标移动到某一行时改变背景色,实现删除时的确认对话框,...

    gridview导出PDF-WORLD-EXCEL

    在IT行业中,GridView是一种常用的控件,特别是在ASP.NET框架中,用于显示和操作数据库中的数据。GridView提供了丰富的功能,如排序、分页、筛选等,同时也支持数据导出,这在数据分析和报告生成中非常实用。本项目...

    GridView 技巧 强大使用 方法

    GridView无代码分页排序 GridView选中,编辑,取消,删除 ...GridView突出显示某一单元格(例如金额低于多少,分数不及格等) GridView加入自动求和求平均值小计 GridView数据导入Excel/Excel数据读入GridView

    C# GridView 用法技巧资料整合

    在C#中,GridView是一个非常常用的控件,用于展示数据并提供用户交互。它通常用于ASP.NET Web Forms应用中,可以方便地绑定到各种数据源,如SQL数据库、XML文件或者对象集合。以下是对给定内容中涉及的C# GridView...

    GridView 72般绝技非常有价值

    在C#编程中,GridView是网页开发中常用的数据展示工具,尤其在处理数据库数据时。这篇【月儿原创】的C#精髓系列第四讲深入探讨了GridView的72种技巧,涵盖了从基本功能到高级定制,帮助开发者更好地理解和应用...

Global site tag (gtag.js) - Google Analytics