.net之GridView、DataList、DetailsView(一)
GridView:两种数据绑定方法
方法一:得到数据后,赋给DataSource属性,然后执行控件的DataBind()方法。
BLL.Article bll = new BLL.Article(); List<MODEL.Article> list = bll.GetArticle(); GridView1.DataSource = list; GridView1.DataBind();
方法二:使用数据源控件,赋给数据绑定控件的DataSourceId。
DataSource属性和DataSourceId不能同时使用。如果先用数据源控件获得数据并绑定显示,在程序中又需要改用手动绑定的方法显示数据,要先给DataSourceId赋null。
列设置中可选字段的用法:
BoundField:显示要绑定的数据
CheckBoxField:以CheckBox显示,一般与数据库中bit类型绑定
HyperLinkField:以超链接形式显示,一般链接地址与绑定数据有关系
ImageField:以图片形式显示,一般图片地址与绑定数据有关系
ButtonField:以按钮形式显示
CommandField:包含能够触发增删改事件的按钮,其实就是一个普通按钮,不同的是CommandName的设置。
在GridView控件中,一个按钮的CommandName属性为edit,cancel,update,delete时,则会自动触发GridView的编辑,取消,更新,删除功能,须实现方法,然后重新绑定数据。Page_Loda事件中要进行IsPostBack判断。
EditIndex 属性:指用户正在编辑的行,如果没有编辑任何行,设置为-1。AllowPaging属性:是否自动分页。AutoGenerateColumns属性:是否自动生成列。PageIndex属性:当前页。PageSize属性:页大小。Rows属性:所显示数据行的集合
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Bind();
}
}
private void Bind()
{
BLL.Article bll = new BLL.Article();
List<MODEL.Article> list = bll.GetArticle();
GridView1.DataSource = list;
GridView1.DataBind();
}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "a")
{
Response.Write("按钮1");
}
else if (e.CommandName == "b")
{
Response.Write("按钮2");
}
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
Bind();
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -;
Bind();
}
在GridView中获取用BoundFiled绑定的内容:GridView1.Rows[i].Cells[i].Text;处于编辑状态时获取用户输入的文本框中的值:(TextBox)GridView1.Rows[i].Cells[i].Controls[0].Text;如果用BoundFiled绑定的列被隐藏掉,那么隐藏的值无法获取到。用FindControl获取模版列中的值。
//获取BoundFiled绑定字段的值
Label2.Text = GridView1.Rows[].Cells[].Text;
//获取编辑状态下字段的值
CheckBox cb = (CheckBox)GridView1.Rows[].Cells[].Controls[];
Label2.Text = cb.Checked.ToString();
//获取模板项中的值
Label2.Text = ((Label)GridView1.Rows[].Cells[].FindControl("Label1")).Text;
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
//获得修改后的值
].Controls[]).Text;
].Controls[]).Checked;
//获得主键
].FindControl("Label1")).Text;
//根据主键获得实体类模型
MODEL.Article model = new BLL.Article().GetSingleArticle(Aid);
model.Aisdel = IsDel;
model.Atitle = Atitle;//修改属性
)//如果编辑更新数据库成功
{
GridView1.EditIndex = -;//取消编辑状态
Bind();//重新绑定数据
}
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
].FindControl("Label1")).Text;
new BLL.Article().Del(Aid);
Bind();
}
.net之GridView、DataList、DetailsView(一)的更多相关文章
- gridview和detailsview的完美结合运用实现增删改
原文发布时间为:2008-07-24 -- 来源于本人的百度文章 [由搬家工具导入] 1、因Gridview中没有增加记录,所以应利用datalistview或formview来弥补。 2、因为det ...
- .net之GridView、DataList、DetailsView(二)
GridView自带分页功能,效率不高,适用于小数据量的显示. protected void GridView1_PageIndexChanging(object sender, GridViewPa ...
- 支持行单击、双击事件的GridView和DataList控件(译)
支持行单击.双击事件的GridView和DataList控件(译) 让GridView 和 DataList 控件响应鼠标单击.双击事件.并且,使用 ClientScript.Regi ...
- Gridview、DataList、Repeater获取行索引号
Gridview.DataList.Repeater如何获取行索引号?很多情况下都会用得到,下面贴出代码,注意行索引号是从0开始,不是从1开始,如果要从1开始,请在代码里面+1就行了. Gridvie ...
- ASP.NET--GridView配合DetailsView初使用
1.GridView与DetailsView中的绑定模板不可以进行编辑的问题 方法:将要编辑的列转换为模板列---TemplateField <EditItemTemplate></ ...
- GridView控件
GridView是ASP.NET 1.x的DataGrid控件的后继者.它提供了同样的基本功能集,同一时候添加�了大量扩展和改进.如前所述,DataGrid(ASP.NET 2.0仍然全然支持)是一个 ...
- Asp.net中GridView详解《转》
ASP.NET服务器控件GridView 1 ASP.NET 服务器控件GridView使用 本教程不介绍服务器端控件的呈现,事件处理,状态等理论知识,只介绍服务器端控件的使用操作,如 ...
- asp.net中GridView传多个值到其它页面的方法
网站开发中,在页面之间的跳转,经常会用到传值,其中可能会传递多个值. 一.CommadArgument传多个值到其他页面. 像Gridview dataList repeater等数据绑定控件中,可以 ...
- Repeater的分页
Repeater控件是个好东西.轻量级.又好用.完全的自定义.但是,正是因为这些优点它没有自动分页的功能.这个需要研究一下.我看了一下起点等小说网站,那些什么推荐排名榜用Repeater控件那是很 ...
- ASP.NET 页生命周期
ASP.NET 页运行时,此页将经历一个生命周期,在生命周期中将执行一系列处理步骤.这些步骤包括初始化.实例化控件.还原和维护状态.运行事件处理程序代码以及进行 呈现.了解页生命周期非常重要,因为这样 ...
随机推荐
- CodeForces 445B DZY Loves Chemistry (并查集)
题意: 有N种药剂编号 1 ~ N,然后有M种反应关系,这里有一个试管,开始时危险系数为 1,每当放入的药剂和瓶子里面的药剂发生反应时危险系数会乘以2,否则就不变,给出N个药剂和M种反应关系,求最大的 ...
- [Python Cookbook] Pandas Groupby
Groupby Count # Party’s Frequency of donations nyc.groupby(’Party’)[’contb receipt amt’].count() The ...
- luogu P1284 三角形牧场
题目描述 和所有人一样,奶牛喜欢变化.它们正在设想新造型的牧场.奶牛建筑师Hei想建造围有漂亮白色栅栏的三角形牧场.她拥有N(3≤N≤40)块木板,每块的长度Li(1≤Li≤40)都是整数,她想用所有 ...
- [POI2014]Criminals
题目大意: 给你一个长度为$n(n\le10^6)$的颜色序列,其中每个颜色互不相同.两个人$A$和$B$分别从某个点出发从左往右.从右往左任意地选择颜色,然后在中间的某一点相遇.分别给出两人所选择的 ...
- iOS中正则表达式的基本使用方法
一.第三方框架RegexKitLite的使用 在ios项目中可以借用第三方框架RegexKitLite来简化对正则表达式的使用,使用方法如下 1.去RegexKitLite下载类库,解压出来会有一个例 ...
- Word中设置所有西文字体为新罗马
如图所示,不用一个一个设置,在字体里直接设置细纹字体:Times New Roman ,中文字体不用管.
- Android反编译调试源码
Android反编译调试源码 1. 反编译得到源码 直接在windows 命令行下输入命令java -jar apktool_2.0.0.jar d -d 小米运动_1.4.641_1058.apk ...
- win10 安装java
https://jingyan.baidu.com/article/fea4511a12b158f7bb9125b9.html 一 下载java SE 官网 二设置环境变量 JAVA_HOME PAT ...
- Chrome的Waterfall
参考: 1.https://developers.google.com/web/tools/chrome-devtools/network-performance/reference#timing 2 ...
- util.select.js
ylbtech-JavaScript-util: util.select.js 筛选工具 1.A,JS-效果图返回顶部 1.B,JS-Source Code(源代码)返回顶部 1.B.1, m.y ...