asp.net GridView 总结备忘
2013-11-15 00:20
246 查看
GridView绑定数据
Web.config配置
以上,在RowCreated,RowDataBound事件中,都有一个参数为GridViewRowEventArgs的对象,通过该对象,可以访问相应的GridViewRow对象。
1.2 GridView编辑数据时的事件
● RowCommand 当GridView中的控件引发事件时触发
RowCommand触发时,有一个参数GridViewCommandEventArgs对象,通过它,可以知道CommandName,CommandArgument,见例11
● RowUpdating 当GridView更新记录前触发
RowUpdating 事件发生时,有一个参数为GridViewUpdateEventArgs的对象,其有一些属性有用处
▲ Cancel : 应取消事件,则为>
例4:控件中移除最后一条记录时,如何使用 RowDeleting 事件取消删除操作。
Web.config配置
<configuration> <appSettings/> <connectionStrings> <add> 绑定SQL Server 数据库 using System.Data; using System.Data.SqlClient; using System.Configuration; protected> 绑定 Access 数据库 using System.Data; using System.Data.OleDb; using System.Configuration; protected> 绑定Oracle数据库 using System.Data; using System.Data.OracleClient; using System.Configuration; protected> GridView事件 GridView有很多事件,事件可以定制控件的外观或者行为。事件分为三类 1.1 GridView显示数据时的事件 DataBinding : 在绑定数据源之前触发 [继承自Control] DataBound 在绑定到数据源后触发 RowCreated 创建每一行时触发 RowDataBound : 每一行绑定完数据时触发 呈现 GridView 控件之前,必须先为该控件中的每一行创建一个 GridViewRow 对象。在创建 GridView 控件中的每一行时,将引发 RowCreated 事件。当行创建完毕,每一行GridViewRow就要绑定数据源中的数据,当绑定完成后,将引发RowDataBound事件。 例1:使用 RowCreated 事件将正在创建的行的索引存储在该行所包含 LinkButton 控件的CommandArgument 属性中 (代码源自网络摘抄) <script> 例2:使用 RowDataBound 事件在数据源中的字段值显示在 GridView 控件中之前修改该值。 protected> 例子:GridView嵌套GridView 用javascript隐藏和展现子GridView 前台 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title> GridView嵌套GridView 用javascript隐藏和展现子GridView </title> <script> 后台 using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using BLL; using Model; using System.IO; using System.Text; using System.Linq; using System.Collections.Generic; public> 例子:鼠标移动背景变色和删除时弹出对话框 //鼠标移动到某一行,改变改行颜色 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { #region //如果是绑定数据行 if (e.Row.RowType == DataControlRowType.DataRow) { //鼠标经过时,行背景色变 e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#999'"); //鼠标移出时,行背景色变 e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#087'"); } #endregion //如果是绑定数据行 if (e.Row.RowType == DataControlRowType.DataRow) { if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate) { ((LinkButton)e.Row.Cells[7].Controls[0]).Attributes.Add("onclick", "javascript:return confirm('你确认要删除:\"" + e.Row.Cells[1].Text + "\"吗?')"); } } }
以上,在RowCreated,RowDataBound事件中,都有一个参数为GridViewRowEventArgs的对象,通过该对象,可以访问相应的GridViewRow对象。
1.2 GridView编辑数据时的事件
● RowCommand 当GridView中的控件引发事件时触发
RowCommand触发时,有一个参数GridViewCommandEventArgs对象,通过它,可以知道CommandName,CommandArgument,见例11
● RowUpdating 当GridView更新记录前触发
RowUpdating 事件发生时,有一个参数为GridViewUpdateEventArgs的对象,其有一些属性有用处
▲ Cancel : 应取消事件,则为>
例4:控件中移除最后一条记录时,如何使用 RowDeleting 事件取消删除操作。
protected> 1.3 GridView选择、排序和分布事件 ● PageIndexChanging: 击某一页导航按钮时,但在 GridView 控件处理分页操作之前发生。 PageIndexChanging事件发生时,事件处理函数中会有一个GridViewPageEventArgs 对象的参数,该对象包含以下属性: ▲ Cancel : 获取或设置指示是否应取消事件的值 ▲ NewPageIndex : 获取或设置要在 GridView 控件中显示的新页的索引。 ● PageIndexChanged : 单击某一页导航按钮时,但在 GridView 控件处理分页操作之后发生。 PageIndexChanged事件发生时,相应的参数是普通的EventArgs对象。 ● Sorting : 在排序开始前触发 事件发生时,会传递GridViewSortEventArgs对象参数,该对象包含以下属性 ▲ Cancel : 获取或设置指示是否应取消排序 ▲ SortDirection: 获取或设置排序方向。 ▲ SortExpression: 获取或设置指控件中的项进行排序的表达式。 ● Sorted: 排序操作进行处理之后触发 事件发生时,相应的参数是普通的EventArgs对象。 ● SelectedIndexChanging : 行被选中之前发生。 事件发生时,会传递GridViewSelectEventHandler 对象参数,该对象包含以下属性 ▲ Cancel : 获取或设置指示是否应取消选择 ▲ NewSelectedIndex: 获取或设置要在 GridView 控件中选择的新行的索引 ● SelectedIndexChanged : 行被选中之后发生。 事件发生时,相应的参数是普通的EventArgs对象。 注:在这个事件中,可以直接访问GridView.SelectedRow,以取得被选中的GridViewRow对象 例5:如何使用 NewPageIndex 属性确定用户所选择页面的索引。 protected> 例6: 如何使用 SortExpression 属性确定正在对哪一列进行排序。如果对地址列进行排序,排序操作将被取消。 protected> 2. GridViewRow对象 GridView 控件将其所有数据行都存储在 Rows 集合中。若要确定 Rows 集合中 GridViewRow 对象的索引,请使用 RowIndex 属性。 对于WEB来说,一个GridViewRow,其实就相当于一个<tr></tr>行 2.1 GridViewRow的类型(RowType) 用于表示 GridView 控件中的单独行。GridView 控件中的每个行都有指定的行类型。下表列出了各种行类型。 ● DataGridRowType.DataRow : 数据行 ● DataGridRowType.Footer : 脚注行 ● DataGridRowType.Header : 标头行 ● DataGridRowType.NullRow : 空行,没有数据显示时,控件中将显示空行 ● DataGridRowType.Pager : 页导航 ● DataGridRowType.Separator : 分隔符行 如果要确定GridViewRow对象的类型,请使用RowType属性 2.2 GridViewRow的状态(RowState) ● DataControlRowState.Alternate : 备用行状态 ● DataControlRowState.Edit : 行处于编辑状态 ● DataControlRowState.Normal : 行处于正常状态 ● DataControlRowState.Selected : 已选定GridViewRow对象 若要确定 GridViewRow 对象的状态,请使用 RowState 属性。 2.3 DataItem,Cells属性 ● DataItem : GridViewRow 对象绑定到的基础数据对象。该属性只在发生 GridView 控件的RowDataBound 事件时及在发生后才可用。 例7: 如何使用 DataItem 属性检索字段值。将该值用于预先选择在某一行处于编辑模式时显示的DropDownList 控件中的某个项。 <script> ● Cells属性: 通过使用 Cells 属性,可以访问 GridViewRow 对象的单独单元格. 如果某个单元格包含其他控件,则通过使用单元格的 Controls 集合,可以从单元格检索控件。 如果某列是BoundField字段,可以使使用Cells[].Text属性。 【注:在 TemplateField 字段列中可以直接使用数据绑定表达式,无需将值绑定到控件的某个属性。在这种情况下,字段值将自动放置在 DataBoundLiteralControl 控件中。若要检索字段值,必须先从相应单元格检索 DataBoundLiteralControl 控件,然后再使用其 Text 属性。例如:】 <script> 2.4 其它一些属性 GridViewRow有很多属性,具体可以参考MSDN, 它包括了一些用于改变样式的属性,这些属性继承自WebControl, 如: BorderColor,BorderStyle,BackColor,ControlStyle,CssClass,Font,ForColor,Height,Width.. 另外,也有Attributes,Controls,Context,Event,Page,Parent,TemplateControl,ViewState等继承Control的属性 2.5 GirdViewRow对象的一些方法 方法也很多,需要时参考MSDN,常用的,包括: FindControl,HasControl,ClearChildControlState… 3. TableCell 对象 TableCell对象表示 Table 控件中的单元格。通过GridViewRow.Cells对象就是返回的TablelCell的集合。 对于WEB来说,其就是一个<td></td> 该对象有一些常用的属性,如Text,Controls.RowSpan,ToolTip,VerticalAlign,HorizontalAlign…属性 关于Control对象,MSDN上有一些说明: 在 ASP.NET 页上,当以声明方式在服务器控件的开始标记和结束标记之间添加控件时,ASP.NET 会自动将这些控件添加到包含服务器控件的 ControlCollection 中。任何不在服务器上处理的 HTML 标记或者文本字符串都视为 LiteralControl 对象。它们像其他服务器控件一样被添加到集合中。 Controls 属性允许编程访问任何服务器控件的 ControlCollection 类实例。您可以向集合添加控件、从集合中移除控件,或者循环访问集合中的服务器控件。 Controls.Add(new LiteralControl("<h3>Value: ")); GridView Eval绑定数据的几种操作 Text='<%# Eval("ID") %>' <%#Eval("Date","{0:yyyy-MM-dd HH:mm:ss}")%> <%# Convert.ToDateTime(Eval("Date")).ToString("yyyy-MM-dd") %> <%# Eval("NameList").ToString().Length > 30?Eval("NameList").ToString().Substring(0, 30) + "...":Eval("NameList").ToString() %> ImageUrl='<%#Eval("Monday").ToString()=="1"?"../images/Good.gif":"../images/delete.gif" %>' <%#Eval("Monday").ToString()=="1"?Convert.ToDateTime(Eval("Date")).ToString("yyyy-MM-dd")+"上班":Convert.ToDateTime(Eval("Date")).ToString("yyyy-MM-dd")+"不上班" %>
相关文章推荐
- ASP.NET GridView总结
- asp.net gridview的Rowcommand命令中获取行索引的方法总结
- Asp.Net北大青鸟总结(四)-使用GridView实现真假分页
- asp.net中gridview的checkbox使用总结
- asp.net 中Gridview 使用总结
- asp.net中GridView的用法总结
- Asp.net教程:Gridview用法总结
- 错误备忘_ASP.NET_ASP.NET GridView 导出 Excel 时发现的有趣现象
- asp.net gridview的Rowcommand命令中获取行索引的方法总结
- ASP.NET的gridview设置数据格式(DataFormatString="{}")与 String.Format 使用总结 .
- Asp.Net GridView事件总结(web)
- Asp.Net总结(三)GridView
- ASP.NET GridView用法总结
- ASP.NET的gridview设置数据格式(DataFormatString="{}")与 String.Format 使用总结收藏
- ASP.NET的gridview设置数据格式(DataFormatString="{}")与 String.Format 使用总结 .
- ASP.NET之GridView常用方法总结
- ASP.net使用技术总结(1)GridView控件的单击处理
- Asp.Net 中Gridview 使用总结
- asp.net总结之比较DataGrid和GridView
- ASP.NET的gridview设置数据格式(DataFormatString="{}")与 String.Format 使用总结