数据源绑定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()");
//}
}



}
}

原文地址:https://www.cnblogs.com/cdaq/p/3577377.html