zoukankan      html  css  js  c++  java
  • 027. asp.net中数据绑定控件之 GridView控件

    GridView控件支持下面的功能:

             绑定至数据源控件, 如SqlDataSource

             内置排序功能

             内置更新和删除功能

             内置分页功能

             内置行选择功能

             可以编程方式访问GridView对象模型以动态设置属性 处理事件等

             多个键字段

             用于超链接列的多个数据字段

             可通过主题和样式自定义外观

    Girdview控件常用属性:

    BackImageUrl

    背景图片

    EmptyDtatText

    没有任何数据时显示的文字

    GridLines

    网格线的样式

    ShowHeader

    是否显示页首连接

    ShowFooter

    是否显示页尾连接

    AllowSorting

    是否启用排序功能

    AllowPaging

    是否启用分页功能  , 启用为True, 否则为false

    AutoGenerateColumns

    是否为数据源中的每个字段自动创建绑定字段

    AutoGenerateDeleteButton

    是否自动产生删除按钮

    AutoGenerateEditButton

    是否自动产生编辑按钮

    AutoGenerSelectButton

    是否自动产生选择按钮

    EnableSortingAndPagingCallbacks

    是否启用排序和分页的异步支持

    Enabled

    获取或设置一个值, 该值指示是否启用Web服务器控件

    EnableTheming

    是否启用主题

    EnableViewState

    是否启用ViewState状态

    DataKeyNames

    string[]数据类型, 该数组包含了显示在GridView控件中的项的主键字段的名称

    DataMember

    当数据源包含多个不同的数据项列表是, 获取或设置数据绑定控件绑定到的数据列表的名称

    DataSource

    数据绑定控件从该对象中检索其数据项列表

    DataSourceID

    数据源控件的ID, 数据绑定控件从该控件中检索要绑定的数据

    Caption

    设置标题文字

    CaptionAlign

    标题文字的对齐方式

    AltenatingRowStyle

    设置交换数据行的外观

    EditRowStyle

    设置编辑模式下数据行的外观

    EmptyDataRowStyle

    设置空数据行的外观

    FooterStyle

    设置页尾数据行的外观

    HeaderStyle

    设置页首数据行的外观

    HorizontalAlign

    设置GridView控件在页面上的水平对齐方式

    PageCount

    获取在GridView控件中显示所需的分页数

    PagerStyle

    设置页面导航栏的外观

    RowStyle

    设置数据行的外观

    SelectRowStyle

    设置已选择数据行的外观

    SortDirection

    获取正在排序的列的排序方向

    SotreExpression

    获取与正在排序的列关联的排序表达式

    GridView常用方法:

    ApplyStyleSheetSkin

    将样式表中定义的样式属性应用到控件

    DataBind

    将数据源绑定到GridView控件中, 只有使用该方法绑定, 才能将数据源中的数据显示在控件中

    DeleteRow

    从数据源中删除位于指定索引位置的记录

    FindControl

    在当前的命名容器中搜索指定的服务器控件

    Focus

    为控件设置输入焦点

    GetType

    获取当前示例的Type

    HasControls

    确定服务器控件是否包含任何子控件

    IsBindableType

    确定指定的数据类型是否绑定到GridView控件中的列

    Sort

    根据指定的排序表达式和方向对Gridview控件进行排序

    sortExpression 对GridView控件进行排序时使用的排序表达式

    sortDirection   Ascending/Descending

    UpdateRow

    使用行的字段值更新位于指定行索引位置的记录

    GridView常用事件:

    RowCommand

    在 GridView 控件中单击某个按钮时发生.此事件通常用于在该控件中单击某个按钮时执行某项任务.  

    PageIndexChanging

    在单击页导航按钮时发生,但在 GridView 控件执行分页操作之前.此事件通常用于取消分页操作.  

    PageIndexChanged

    在单击页导航按钮时发生,但在 GridView 控件执行分页操作之后.此事件通常用于在用户定位到该控件中不同的页之后需要执行某项任务时.

    SelectedIndexChanging 

    在单击 GridView 控件内某一行的 Select 按钮(其 CommandName 属性设置为“Select”的按钮)时发生,但在 GridView 控件执行选择操作之前.此事件通常用于取消选择操作.

    SelectedIndexChanged

    在单击 GridView 控件内某一行的 Select 按钮时发生,但在 GridView 控件执行选择操作之后.此事件通常用于在选择了该控件中的某行后执行某项任务. 

    Sorting

    在单击某个用于对列进行排序的超链接时发生,但在 GridView 控件执行排序操作之前.此事件通常用于取消排序操作或执行自定义的排序例程.

    Sorted

    在单击某个用于对列进行排序的超链接时发生,但在 GridView 控件执行排序操作之后.此事件通常用于在用户单击对列进行排序的超链接之后执行某项任务.

    RowDataBound

    在 GridView 控件中的某个行被绑定到一个数据记录时发生.此事件通常用于在某个行被绑定到数据时修改该行的内容.

    RowCreated

    在 GridView 控件中创建新行时发生.此事件通常用于在创建某个行时修改该行的布局或外观.

    RowDeleting

    在单击 GridView 控件内某一行的 Delete 按钮(其 CommandName 属性设置为“Delete”的按钮)时发生,但在 GridView 控件从数据源删除记录之前.此事件通常用于取消删除操作.

    RowDeleted

    在单击 GridView 控件内某一行的 Delete 按钮时发生,但在 GridView 控件从数据源删除记录之后.此事件通常用于检查删除操作的结果.

    RowEditing

    在单击 GridView 控件内某一行的 Edit 按钮(其 CommandName 属性设置为“Edit”的按钮)时发生,但在 GridView 控件进入编辑模式之前.此事件通常用于取消编辑操作.

    RowCancelingEdit

    在单击 GridView 控件内某一行的 Cancel 按钮(其 CommandName 属性设置为“Cancel”的按钮)时发生,但在 GridView 控件退出编辑模式之前.此事件通常用于停止取消操作.

    RowUpdating

    在单击 GridView 控件内某一行的 Update 按钮(其 CommandName 属性设置为“Update”的按钮)时发生,但在 GridView 控件更新记录之前.此事件通常用于取消更新操作.

    RowUpdated

    在单击 GridView 控件内某一行的 Update 按钮时发生,但在 GridView 控件更新记录之后.此事件通常用来检查更新操作的结果.

    DataBound

    此事件继承自 BaseDataBoundControl 控件,在 GridView 控件完成到数据源的绑定后发生.

    DataBinding

    当服务器控件绑定到数据源时发生

    CommandName属性值及说明:

    Cancel

    取消编辑操作, 并将GridView控件返回为只读模式

    Delete

    删除当前记录

    Edit

    将当前记录至于编辑模式

    Page

    执行分页操作, 将按钮的CommandArgument属性设置为First, last , Next, Prev 或页码, 以指定要执行的分页操作类型

    Select

    选择当前记录

    Sort

    对GridView控件进行排序

    Update

    更新数据源中的当前记录

    制定GridView控件的列:

    对于GridView控件中的每一列由一个DataControlField对象表示, 默认情况下, AutoGenerateColumns属性被设置为True, 为数据源中的每一个字段创建一个AutoGeneratedFiled. 将AutoGenerateColumns属性设置为false时, 可以自定义数据绑定列. GridView控件共包含7中类型列:

    BoundField(普通数据绑定列) 

    将Data Source数据源的字段数据以文本方式显示 

    CheckBoxField(CheckBox字段) 

    显示为CheckBox类型,通常用于布尔值True/False的显示 

    CommandField(命令数据绑定列)

    显示含有命令的Button按钮,包括了Select、Edit、Update、Delete命令按钮(DetailsView的CommandField才支持Insert命令), 通过设置字段的ButtonType属性可变更命令按钮的外观, 默认是Link样式.若要以图片形式显示编辑按钮外观, 一定要设置ButtonType的属性为Image

    ImageField(图片数据绑定列)

    在数据绑定控件中显示图像字段, 通常ImageField存储的是图片路径.

    ButtonField(按钮字段) 

    在数据绑定控件中显示命令按钮。根据控件的不同,它可让您显示具有自定义按钮控件(例如添加/移除按钮)的数据行或数据列,按下时会引发RowCommand事件 CommandField(命令字段)

    HyperLinkField(超链接字段) 

    将Data Source数据源字段数据显示成HyperLink超级链接,并可指定另外的NavigateUrl超链接 ImageField(图像字段)在数据绑定控件中显示图像字段 

    TemplateField(模板字段) 

    允许以模板形式自定义数据绑定列的内容.常用模板如下:

    1. ItemTemplate: 显示每一条数据的模板
    2. AlternatingItemTemplate: 使奇数条数据及偶数条数据以不同的模板显示, 该模板与ItemTemplate结合可产生两个模板交错显示的效果
    3. EditItemTemplate:进入编辑模式时所使用的数据编辑模板, 对于EditItemTemplate用户可以自定义编辑界面
    4. HeaderTemplate: 最上方的标头(标题)

    当GridView控件中显示的数据很多时, 单击GridView控件中的某一个按钮, 页面就会刷新, 刷新后页面回到网页的底部, 然后必须查找原来的位置, 这样造成了不必要的麻烦, 为了解决这个问题, 在ASP.NET2.0中添加了MaintainScrollPositionOnPostback="true"

    属性, 他的作用就是在网页刷新后仍维持原位.

    <%@ Page Title="主页" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"

        CodeFile="Default.aspx.cs" Inherits="_Default" Debug="true" MaintainScrollPositionOnPostback="true"  %>

    示例代码:

      1 protected void Page_Load(object sender, EventArgs e)
      2 
      3     {
      4 
      5         if (!IsPostBack)
      6 
      7             GridViewBind();
      8 
      9     }
     10 
     11     public SqlConnection GetCon()
     12 
     13     {
     14 
     15         //实例化SqlConnection对象
     16 
     17         SqlConnection sqlCon = new SqlConnection();
     18 
     19         //实例化SqlConnection对象连接数据库的字符串
     20 
     21         sqlCon.ConnectionString = "server=.\LG;uid=sa;pwd=;database=TYW";
     22 
     23         return sqlCon;
     24 
     25     }
     26 
     27     public void GridViewBind()
     28 
     29     {
     30 
     31         SqlConnection myConn = GetCon();
     32 
     33         //定义SQL语句
     34 
     35         string SqlStr = "select * from sysUser";
     36 
     37         //实例化SqlDataAdapter对象
     38 
     39         SqlDataAdapter da = new SqlDataAdapter(SqlStr, myConn);
     40 
     41         //实例化数据集DataSet
     42 
     43         DataSet ds = new DataSet();
     44 
     45         da.Fill(ds, "sysUser");
     46 
     47         //绑定DataList控件
     48 
     49         GridView1.DataSource = ds;//设置数据源,用于填充控件中的项的值列表
     50 
     51         GridView1.DataKeyNames = new string[] { "userID" };
     52 
     53         GridView1.DataBind();//将控件及其所有子控件绑定到指定的数据源
     54 
     55     }
     56 
     57     protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
     58 
     59     {
     60 
     61         //设置GridView控件的编辑项的索引为选择的当前索引
     62 
     63         GridView1.EditIndex = e.NewEditIndex;
     64 
     65         //数据绑定
     66 
     67         GridViewBind();
     68 
     69     }
     70 
     71     protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
     72 
     73     {
     74 
     75         //设置GridView控件的编辑项的索引为-1,即取消编辑
     76 
     77         GridView1.EditIndex = -1;
     78 
     79         //数据绑定
     80 
     81         GridViewBind();
     82 
     83     }
     84 
     85     protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
     86 
     87     {
     88 
     89         //取得编辑行的关键字段的值
     90 
     91         string stuID = GridView1.DataKeys[e.RowIndex].Value.ToString();
     92 
     93         //取得文本框中输入的内容
     94 
     95         string stuName = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString();
     96 
     97         //string stuSex = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString();
     98 
     99         //string stuHobby = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString();
    100 
    101         string sqlStr = "update sysUser set Userame='" + stuName + "' where userID=" + stuID;
    102 
    103         SqlConnection myConn = GetCon();
    104 
    105         myConn.Open();
    106 
    107         SqlCommand myCmd = new SqlCommand(sqlStr, myConn);
    108 
    109         myCmd.ExecuteNonQuery();
    110 
    111         myCmd.Dispose();
    112 
    113         myConn.Close();
    114 
    115         GridView1.EditIndex = -1;
    116 
    117         GridViewBind();
    118 
    119     }

     

  • 相关阅读:
    页面布局方案-上固定,下自适应
    页面布局方案-左右固定,中间自适应
    身心疲惫
    生产计划拆分说明-班组绩效匹配算法
    CSS代码片段
    常见内部函数----Python
    pyramid的第一个项目
    2015年大连国际马拉松半程经历
    高效时间管理
    《番茄工作法图解》第四章读书笔记
  • 原文地址:https://www.cnblogs.com/wxylog/p/6164123.html
Copyright © 2011-2022 走看看