ASP.NET中Gridview一些技巧

一、后台覆盖掉Gridview中自动填充的值

  我们可以再Gridview中的事件触发的过程中修改其中的值,而这些值将会在具体的运行过程中覆盖掉那些自动属性。这样我们就可以快捷高效的使用VS中的Gridview控件的同时,又增加一定的自主性和可操作性。

例如:

ItemInserting事件:数据在插入数据库之前会触发这个事件。

如果主键是Guid类型的,就可以在此事件内处理:生成一个Guid数据,然后赋值给e.Values[“Id”].

protected void ListView1_ItemInserting(object sender, ListViewInsertEventArgs e)

{

  //e.Values["Sex"] = "男"; //在插入数据库之前,把性别改为男。则无论输入什么,最终都会是男”

  //e.Values["Sex"]就是即将要插入的性别字段的值。

}

二、善用GridView控件的HyperLinkField数据行

  在使用GridView的时候,我们往往希望添加一列超链接,用来定位到一个与该行某列数据相关的操作页面。事实上GridView中的HyperLinkField为我们提供了便捷的操作。注意其中的DataTextFiele是用来绑定选定字段,以显示在表中。而DataNavigateUrlForri则是该项的链接地址,其中的URL传值的绑定项便是上方的DataNavigateUrlied中绑定字段的值。数据中的最后一个属性DataTextFormatString我们下面会提到。

三、GridView中编辑列下数据中的DataTextFormatString

  DataTextFormatString很少使用到,单是极大的方便了我们对数据项格式的控制,下面将列举一些该属性对格式控制的具体样例:

该部分转载至:http://blog.csdn.net/ggj00006/article/details/6583849

DataTextFormatString="{0:Axx}"

用來取得或設定文字型別的資料該如何顯示

A 為格式字元

xx 是指數字位數或小數點位數,如果沒有指定小數點的位數,大部份格式的預設值為2,超過的位數會自動四捨五入。

格式字元
說明
C
將數值顯示為貨幣格式。
D
將數值顯示為十進位格式。
E
將數值顯示為科學格式。
F
將數值顯示為固定科學格式。
G
將數值顯示為一般格式。
N
將數值顯示為數字格式。
X
將數值顯示為十六進位格式。
例子:
範例值
格式
套用結果
12345.6789
"{0:C}"
$12,345.68
-12345.6789
"{0:C}"
($12,345.68)
12345
"{0:D8}"
00012345
12345.6789
"{0:E}"
1234568E+004
12345.6789
"{0:F}"
12345.68
12345.6789
"{0:F0}"
12346
12345.6789
"{0:G}"
12345.6789
123456789
"{0:N4}"
123,456,789.0000

DataTextFormatString="{0:A}"

用來取得或設定日期時間型別的資料該如何顯示

A 為格式字元

範例值
格式
套用結果
2006/1/20
"{0:d}"
2006/1/20
2006/1/20
"{0:D}"
2006年1月20日
2006/1/20
"{0:f}"
2006年1月20日 上午 12:00
2006/1/20
"{0:F}"
2006年1月20日 上午 12:00:00
2006/1/20
"{0:g}"
2006/1/20 上午 12:00
2006/1/20
"{0:G}"
2006/1/20 上午 12:00:00
2006/1/20
"{0:m}" 或 "{0:M}"
1月20日
2006/1/20
"{0:r}" 或 "{0:R}"
Fri, 20 Jan 2006 0:00:00 GMT
2006/1/20
"{0:s}"
2006-01-20T00:00:00
2006/1/20
"{0:t}"
上午 12:00
2006/1/20
"{0:T}"
上午 12:00:00
2006/1/20
"{0:u}"
2006-01-20 00:00:00Z
2006/1/20
"{0:U}"
2006年1月20日 下午 04:00:00
2006/1/20
"{0:y}" 或 "{0:Y}"
2006年1月

DataTextFormatString="{0:xxxx}"

用來指定日期時間型別的資料該如何顯示

xxxx 為日期時間的顯示格式,格式字元會區份大小寫

格式字元
說明
d
以數字顯示日期,如果日期只有個位數,十位數不會補上0。
dd
以數字顯示日期,如果日期只有個位數,十位數會補上0。
ddd
顯示該日期為星期幾,英文系統會顯示星期縮寫。
dddd
顯示該日期為星期幾,英文系統會顯示星期全名。
M
以數字顯示月份,如果月份只有個位數,十位數不會補上0。
MM
以數字顯示月份,如果月份只有個位數,十位數會補上0。
MMM
顯示月份名稱,英文系統會顯示月份縮寫。
MMMM
顯示月份名稱,英文系統會顯示月份全名。
yy
以兩位數顯示西元年,例如2006年會顯示06。
yyyy
以四位數顯示西元年,例如2006年會顯示2006。
h
以數字顯示小時,如果小時只有個位數,十位數不會補上0。
hh
以數字顯示小時,如果小時只有個位數,十位數會補上0。
m
以數字顯示分鐘,如果分鐘只有個位數,十位數不會補上0。
mm
以數字顯示分鐘,如果分鐘只有個位數,十位數會補上0。
s
以數字顯示秒數,如果秒數只有個位數,十位數不會補上0。
ss
以數字顯示秒數,如果秒數只有個位數,十位數會補上0。
tttt
顯示上午或下午
其它符號
指定任何符號即可顯示該符號,通常;符號為時間分隔符號,/符號為日期分隔符號。
例子:
範例值
格式
套用結果
2006/1/20
"{0:yyyy年M月d日}"
2006年1月20日
2006/1/20
"{0:ddd}"
星期五
2006/1/20
"{0:yyyy/M/d}"
2006/1/20

四、“…”代替Gridview中的过长字符串

  有时候过长的行内显示往往让我们的页面布局混乱不堪,接下来的方法可以将Gridview中过长的行内内容覆盖掉。注意其中的RowDataBound时间的使用。

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)

{

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

{

string content = e.Row.Cells[3].Text;

e.Row.Cells[3].Text = SubStr(content, 12);

}

}

//自定义方法,用来截取超出显示的gridview中的项

private string SubStr(string str, int len)

{

if (str.Length<=len)

{

return str;

}

string newStr = str.Substring(0, len);

newStr += "...";

return newStr;

}

五、向GridView查询中传值

  如果之前你还按照提示一中的方法修改Gridview中的操作数据的话,现在你可以使用这种方法更高效的完成相应的操作了。它可以向GridView中where语句添加相应的值,这些值可以来自Cookie,Session,Url传值,控件属性甚至是路由和窗体字段。

  如何Boy现在你可以如鱼得水的使用GridView控件了吧。


如果这些内容帮助到你了,希望您给予支持 o(^▽^)o

(支付宝)

ASP.NET中Gridview一些技巧的更多相关文章

  1. Asp.net中GridView使用详解(很全,很经典 转来的)

    Asp.net中GridView使用详解 效果图参考:http://hi.baidu.com/hello%5Fworld%5Fws/album/asp%2Enet中以gv开头的图片 l         ...

  2. Asp.net中GridView使用详解(引)【转】

    Asp.net中GridView使用详解(引) GridView无代码分页排序 GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单DropDownList ...

  3. Asp.net中GridView使用详解(很全,很经典)

    http://blog.csdn.net/hello_world_wusu/article/details/4052844 Asp.net中GridView使用详解 效果图参考:http://hi.b ...

  4. Asp.net中GridView详解《转》

    ASP.NET服务器控件GridView 1         ASP.NET 服务器控件GridView使用 本教程不介绍服务器端控件的呈现,事件处理,状态等理论知识,只介绍服务器端控件的使用操作,如 ...

  5. asp.net中gridview的checkbox使用总结

    1.在gridview中的<column>中加入 <asp:TemplateField HeaderText="选择"> <ItemTemplate& ...

  6. 使用模板技术处理ASP.NET中GridView额外序号列的问题

    问题描述: 现在要在一张GridView表中添加一列来显示行号,要求是显示下一页的时候能够递增而不是从新编号.数据库中的没有相关序号列 如何在软件端实现呢? 通过测试,添加以下代码即可解决需求. &l ...

  7. Asp.net中GridView使用详解(引)

    GridView无代码分页排序GridView选中,编辑,取消,删除GridView正反双向排序GridView和下拉菜单DropDownList结合GridView和CheckBox结合鼠标移到Gr ...

  8. ASP.NET中gridview获取当前行的索引值

    在用GridView控件时,我们经常会碰到获取当前行的索引,通过索引进行许多操作.例如,可以获得当前行某一个控件元素:设置某一元素的值等等.下面结合实例介绍几种获得GridView当前行索引值的方法. ...

  9. 025. asp.net中GridView的排序和过滤

    前台HTML代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Defaul ...

随机推荐

  1. git终端操作

    1.提交 git add . git commit -m "test" git push origini master 2.分支 创建feature_x分支,并切换到feature ...

  2. Git--将服务器代码更新到本地

    1. git status(查看本地分支文件信息,确保更新时不产生冲突) 2. git checkout -- [file name] (若文件有修改,可以还原到最初状态; 若文件需要更新到服务器上, ...

  3. 【题解】UVA10298 Power String(KMP)

    UVA10298:https://www.luogu.org/problemnew/show/UVA10298 思路 设P[x]数组为 前x个字符的最大前缀长度等于后缀字串 由P数组的定义我们可以知道 ...

  4. waring L16: uncalled segement ----keil

    1.keil中出现waring:uncalled segement 2.waring L16:这个应该是一个waring等级 3.  转载自 wpb3dm 在Keil C中,如果没有显式调用到定义过的 ...

  5. ZooKeeper系列(1)--分布式系统的基石

    分布式架构有以下几点普适性的共性需求: 1. 提供集群的集中化的配置管理功能,可以不重启就让新的配置参数生效,类似与配置中心      2. 简单可靠的集群节点动态发现机制,便于动态发现服务,动态扩展 ...

  6. 【转载】python发送邮件实例

    本文转自:http://www.cnblogs.com/lonelycatcher/archive/2012/02/09/2343463.html 这几天要用python发送邮件,上网找到这篇文章感觉 ...

  7. python 输入三个整数,按照从小到大的顺序打印

    # # 3 输入三个整数,按照从小到大的顺序打印 a = int(input('请输入第一个整数:')) b = int(input('请输入第二个整数:')) c = int(input('请输入第 ...

  8. Zabbix——使用邮件报警

    前提条件: 1. Zabbix版本4.0 zabbix-server 命令配置: yum install mailx -y #下载邮件功能 vi /etc/mail.rc set bsdcompat ...

  9. sql 复杂查询 以teacher student course多对多关系为例

    数据库表和值 /* SQLyog Ultimate v8.32 MySQL - 5.7.17-log : Database - course_dbms ************************ ...

  10. 【Linux】Linux 的慢动作基础

    了解一下刀片服务器: 刀片服务器是指在高标准度的机架式机箱内插装多个卡式的服务器单元,是一种实现HAHD的低成本服务器平台,其中每一片刀片实际上就是一块系统主板. Linux: Linux操作系统构成 ...