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()");
//}
}
}
}
原文:http://www.cnblogs.com/cdaq/p/3577377.html