• 数据源绑定GridView


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;

    namespace Comp.WEB.GridView
    {
    public partial class GridView数据员绑定数据 : System.Web.UI.Page
    {
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    //用数据元更新数据是 他传递的是一个实体对象 他会构建一个实体过去 ,果然没构成一个实体 他就把其他的认为是null 传过去 数据库
    //中的数据如果没显示在gridview就是null DataObjectTypeName="Comp.MODEL.Users"
    /// <summary>
    /// 1 1)触发控件的RowUpdating事件: 通过e可能获得用户通过Bind绑定的数据更新前和更新后的值 e.NewValues和e.OldValues
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
    //得到的值是 零散的值
    //e.OldValues
    // e.NewValues
    }

    /// <summary>
    /// 2 2)数据源的Updating事件:这里可以通过e获得要更新的实体对象(在1)和2)事件事,可以对用户修改的数据进行再次更改和校验,如果发现数据不对,可以通过e.Cancel=true来取消更新.如果我们取消更新,那么业务逻辑层方法就不会被调用了)
    /// </summary> 在这个事件写 更方便点
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void ObjectDataSource1_Updating(object sender, ObjectDataSourceMethodEventArgs e)
    {
    Comp.BLL.Users bll = new BLL.Users();
    Comp.MODEL.Users updatemodal = new MODEL.Users();

    updatemodal = (MODEL.Users)e.InputParameters[0];// 页面中更新的数据 ,但是页面也有几个不用显示出来的,
    MODEL.Users dbmodal = bll.GetModel(updatemodal.UId);//或的数据库中完整的数据
    //页面中没有显示的值 用数据库中的值进行赋值
    updatemodal.UPwd = dbmodal.UPwd;//拼接成完整的实体数据

    //页面中无法传回的属性进行赋值 Eval 绑定的无法传回 如那个角色id(外键实体) 无法传回来
    //DropDownList ddl = (DropDownList)gvUsers.Rows[gvUsers.EditIndex].Cells[6].FindControl("ddlRoleInfo");
    //updateUser.RoleInfo.RoleId = Convert.ToInt32(ddl.SelectedValue);

    //然后去更新
    bll.Update(updatemodal);

    }

    /// <summary>
    /// 3
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void ObjectDataSource1_Updated(object sender, ObjectDataSourceStatusEventArgs e)
    {
    if (e.Exception != null) //有异常
    {
    e.ExceptionHandled = true; //设置异常已经处理
    }

    }
    /// <summary>
    /// 4
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void GridView1_RowUpdated(object sender, GridViewUpdatedEventArgs e)
    {

    }
    /// <summary>
    /// 角色下拉框每次都不是默认的 这是一类问题解决方案)
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void GridView1_DataBound(object sender, EventArgs e)
    {
    if (GridView1.EditIndex != null) //编辑状态
    {

    ////得到当前用户编辑的用户角色Id
    //string id = ((HiddenField)GridView1.Rows[GridView1.EditIndex].Cells[4].FindControl("HiddenField1")).Value;
    ////找到下拉框
    //DropDownList ddl = (DropDownList)GridView1.Rows[GridView1.EditIndex].Cells[4].FindControl("DropDownList1");
    //ddl.SelectedValue = id;

    }

    }
    /// <summary>
    /// 只要有事件触发就发生这个事件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
    if (e.CommandName == "a")
    {

    }

    // string id = e.CommandArgument.ToString();

    }
    /// <summary>
    /// 没绑定完一行就会触发这个事件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {

    //e.Row 刚刚绑定完的这行
    //当一行绑定完成后触发的一个事
    //if (e.Row.RowType == DataControlRowType.DataRow)
    //{
    // LinkButton lb = (LinkButton)e.Row.Cells[8].FindControl("LinkButton1");
    // lb.Attributes.Add("onclick", "return RepwdConfirm()");
    //}
    }



    }
    }

  • 相关阅读:
    cookie与session的原理及区别
    jwt原则
    Django rest framework基础 RESTful风格
    vue项目使用整理
    Serializer 字段验证以及序列化
    ModelSerializer 字段验证以及序列化
    Django
    FREE 命令结果完全剖析
    一个一元二次方程求解编程引申的两个知识点(abs和fabs的区别以及浮点数比较相等)
    signed和unsigned之二
  • 原文地址:https://www.cnblogs.com/cdaq/p/3577377.html
Copyright © 2020-2023  润新知