• Asp.net GirdView进阶用法


    今天我们来探讨下GridView的更进一步的用法:

    1. 通过行列获取单元格数据

          如果我们需要获取GridView控件中某个单元格的数据,可以采用如下思路。首先,在GridView控件的    SelectedIndexChanging事件中,通过Int index=e.NewSelectedIndex获取选中行的索引,然后通过gvShow.Rows[index].Cells[0].Text;获取选中行对应列的值。

    1. GridView两个重要属性

    属性名称

    说明

    DataKeyNames

    用来获取或指定GridView中主键字段名称的数组,多个主键字段之间使用逗号隔开

    DataKeys

    用来获取GridView中使用DataKeyNames设置的每一行主键值的对象集合

            使用代码设置绑定主键

            GridView控件ID.DataKeyNames=new string[]{

             “主键字段名称1”,”主键字段名称2”,….

           }

         当我们对GridView设置了主键值后,我们就可以通过一定的方式将其获取出来!

          01.单个主键字段的获取方法:

           GridView控件ID.DataKeys[index].Value.ToString();

         02.多个主键字段的获取方法

           GridView控件ID.DataKeys[index][“主键字段名称”].ToString();

          或

          GridView控件ID.DataKeys[index].Values[“主键字段名称1”].ToString();

    DataKeys值的作用:

       我们可以通过使用DataKeys值实现值在页面间的传递。

       在GridView的SelectedIndexChanging事件中,我们可以通过如下代码获取选中行的主键,并且将主键值传递到其他页面:

    1 Int index=e.NewSelectedIndex;
    2 
    3 String key=this.gvHR.DataKeys[index].Value.ToString();
    4 
    5 Response.Redirect(“modify.aspx?id=”+key);
    1. GridView中事件处理机制

          RowEditing事件:

    属性名称

    说明

    NewEditIndex

    获取或设置所编辑的行的索引

    Cancel

    将Cancel属性设置true,可以取消编辑操作

             需要注意的是:如果将GridView的EditIndex设置为-1时,没有编辑行。

            设置编辑行索引的具体代码:

              在GridView的RowEditing事件中,书写如下代码:

             //设置编辑行索引

                this.gvHR.EditIndex=e.NewEditIndex;

            //由于页面回发,页面无法保存对象的状态,需重新绑定

              MyDBBind();

            当我们点击编辑按钮后,界面上会自动出现

            

           更新和取消按钮,此时我们如果点击取消,会出现如下异常信息,

     

           这时,我们可以在GridView的RowCancelingEdit事件中输入如下代码:

           gvHR.EditIndex = -1;

           LoadData();来解决。

          当我们点击更新按钮时,会出现如下提示:

     

          这时,我们需要在RowUpdating事件中书写代码:

        RowUpdating事件

          我们可以在RowUpdating事件中书写如下代码:

            

     1   int index= this.gvHR.EditIndex;
     2 
     3             string userid = gvHR.DataKeys[index].Value.ToString();
     4 
     5             string username = (gvHR.Rows[index].FindControl("txtName") as TextBox).Text;
     6 
     7             string gender = (gvHR.Rows[index].FindControl("ddlGender") as DropDownList).SelectedValue;
     8 
     9             string phone = (gvHR.Rows[index].FindControl("txtTelephone") as TextBox).Text;
    10 
    11             string post = (gvHR.Rows[index].FindControl("ddlPost") as DropDownList).SelectedValue;
    12 
    13             string address = (gvHR.Rows[index].FindControl("txtAddress") as TextBox).Text;
    14 
    15             UpdateData(userid,username,gender,phone,post,address);
    16 
    17             Page.ClientScript.RegisterClientScriptBlock(this.GetType(),
    18 
    19     "info", "<script>alert('更新成功|!')</script>");
    20 
    21  
    22 
    23             gvHR.EditIndex = -1;
    24 
    25             LoadData();

          这样,我们就实现了编辑状态下数据的更新和取消。其实,我们只要掌握了GridView的事件机制,并且能够在对应的事件中书写代码,就不会出现异常。

          当然,GridView的事件还有很多,这里我们只是拿出典型的几个事件进行了说明,后续对GridView的内容还会继续更新。

     

     

    如若转载,请注明出处,微冷的雨出品---YYM
    注意 本文仅代表个人理解和看法哟!和本人所在公司和团体无任何关系!
  • 相关阅读:
    元旦晚会
    CF906D Power Tower
    基于51单片机的多功能秒表(校赛作品)
    集训队第二次排位赛
    《史记》——五帝本纪第一,黄帝部分
    原创,让你的 "Ajax"请求华丽转身,给 "body" 或是 "Div" 加上Loading遮罩!
    Excel导出通用操作方式
    图片(img标签)的onerror事件,你有用过嘛?
    @Url.ActionLink 和 @Url.Action
    原创,自己做的一个简单实用的提示小插件,兼容性很好,基本上都兼容!
  • 原文地址:https://www.cnblogs.com/weilengdeyu/p/3044513.html
Copyright © 2020-2023  润新知