zoukankan      html  css  js  c++  java
  • 温故而知新GridView

    当在GridView控件更新时,四个事件触发的顺序:
    1控件的RowUpdating
    2数据源控件的Updating
    (前两个事件,由于是在调用更新代码之前触发的,所以可以对用户更新的数据进行校验或修改)
    3调用了业务逻辑层的方法(处理更新)
    4数据源控件的Updated
    5控件的Updated事件
    (可以通过判断e.Exception是否为控,来在程序中得到在第3步执行中有没有发生异常.)

     更新效果

    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
    if (GridView1.EditIndex != -1)
    {
    int editRowIndex = GridView1.EditIndex;//获得GridView的当前编辑列
    string typeNameNew = ((TextBox)GridView1.Rows[editRowIndex].Cells[0].Controls[0]).Text;//因为从前台知道当前单元格是textBox所以取当前列控件强转textBox在去取值
    int id=Convert.ToInt32(((Label)GridView1.Rows[editRowIndex].Cells[8].FindControl("Label3")).Text);//这里是在模版列中通过FindControl去取值
    RoomType updateRoomType = roomTypeManager.GetModel(id);//更新前把原值取出,避免数据丢失,下面在覆盖掉变动的值

    updateRoomType.TypeName = typeNameNew;
    updateRoomType.AddBed = ((CheckBox)GridView1.Rows[editRowIndex].Cells[1].Controls[0]).Checked;//复选框的操作

    roomTypeManager.Update(updateRoomType);

    //这两步是为了更好的用户体验
    GridView1.EditIndex = -1;//把编辑列去掉
    this.Bind();//从新绑定

    }

    }

    在GridView中用BouldField绑定的内容时,通过下面得数据
    GridView1.Rows[2].Cells[0].Text
    在GridView中用BouldField绑定的内容时,当GridView处于编辑状态时,如何获得TextBox中用户输入的内容:
    ((TextBox)GridView1.Rows[2].Cells[0].Controls[0]).Text;

    // Label2.Text = GridView1.Rows[2].Cells[0].Text; //获得BouldField绑定的数据 GridView处于非编辑状态
    //Label2.Text = ((TextBox)GridView1.Rows[2].Cells[0].Controls[0]).Text;//在GridView中用BouldField绑定的内容时,当GridView处于编辑状态时,如何获得TextBox中用户输入的内容:

    当使用BouldField绑定数据,这一列如果被隐藏的话,那么隐藏的值无法获得到.所以只能通过模版来实现
    在GridView中,获得模板列中某个控件的值时,使用FindControl("")来得到这个控件

     删除功能的写法

    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
    //还可以不精确找他的单元格Convert.ToInt32(((Label)GridView1.Rows[e.RowIndex].FindControl("Label1")).Text);
    int id = Convert.ToInt32(((Label)GridView1.Rows[e.RowIndex].Cells[8].FindControl("Label1")).Text);
    roomTypeManager.Delete(id);
    this.Bind();
    }


    如果在GridView控件中,一个按钮的CommandName为
    edit时,则会自动触发GridView编辑功能
    cancel时,则会自动触发GridView取消编辑功能
    delete时,则会自动触发GridView删除功能
    update时,则会自动触发GridView更新功能


    数据绑定:
    第一种:手写代码绑定
    1)获得数据一般要是一个集合
    2)把这个集合赋给控件的DataSource属性
    3)执行这个控件的DataBind()方法

     因为多次调用所以封装成一个方法

    protected void Bind()
    {
    List<RoomType> allRoomTypes = roomTypeManager.GetModelList("");
    GridView1.DataSource = allRoomTypes;
    GridView1.DataBind();
    }

    数据源控件 objectDataSource
    数据绑定控件 (显示数据的控件)ListView GridView

  • 相关阅读:
    SC || Git 相关知识
    SC || Chapter 1
    SC || 解决在git中上传过大文件的问题(如何将提交过的彻底删除
    SC || 那些CheckStyle中的错误们
    纯c实现字符串切割
    c++实现字符串切割
    频域滤波
    空间域滤波
    卷积的理解
    频域分析相关概念
  • 原文地址:https://www.cnblogs.com/ffeng/p/2976848.html
Copyright © 2011-2022 走看看