码迷,mamicode.com
首页 > 其他好文 > 详细

数据源控件

时间:2014-11-14 01:28:34      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   color   ar   os   使用   sp   数据   

数据绑定:

【1】手动查找数据
(1).获得数据一般要是一个集合
(2).把这个集合赋给控件的DataSource属性-----对于CS,只需要前两步就可以完成数据的绑定
(3).执行这个空间的DataBind()方法。

【2】使用数据源控件

(1).对于数据源控件上的【SELECT】所有数据-----GetModelList()方法,默认是传参NULL,但是东软生成的代码有点缺陷,所以得将其在DAL的方法进行修改:

 1         /// <summary>
 2         /// 获得所有数据列表
 3         /// </summary>
 4         public DataSet GetList(string strWhere)
 5         {
 6             StringBuilder strSql = new StringBuilder();
 7             strSql.Append("select TypeId,TypeName,Price,AddBed,BedPrice,Remark ");
 8             strSql.Append(" FROM RoomType ");
 9             if (strWhere != null && strWhere.Trim() != "")
10             {
11                 strSql.Append(" where " + strWhere);
12             }
13             return DbHelperSQL.Query(strSql.ToString());
14         }

-------------------PS:其中这一句  if (strWhere != null && strWhere.Trim() != "") 是将其未考虑到的情况加入!!

(2).使用数据源控件【删除】操作时会报错,是因为【ObjectDataSource】的【DataObjectTypeName】属性默认的设置为 Model.RoomType,即在执行【查询】【更新】【删除】操作时,传的参数都是Model模型,不能只传 int 类型的 TypeId .!!

所以,应对错误的解决方案为:重载一个传Model的方法 Delete(Model.RoomType model):

 1         /// <summary>
 2         /// 删除一条数据
 3         /// 重载了下面那个删除方法,并且调用了下面那个删除方法
 4         /// </summary>
 5         public bool Delete(Model.RoomType model)
 6         {
 7             return Delete(model.TypeId);
 8         }
 9 
10         /// <summary>
11         /// 删除一条数据
12         /// </summary>
13         public bool Delete(int TypeId)
14         {
15             
16             return dal.Delete(TypeId);
17         }

-----------------PS:此时点击【删除】事件还是会犯错,这是因为没有指定控件 【GridView】 的 【DataKeyNames】属性-----------DataKeyNames="TypeId",这样就OK

 

----------------PS:对于无用的 ID 列可以进行隐藏,不让用户看到!!!!此时无影响

-------------------------------------------------------------------------------------------------------------------------------------------------------------------

以GridView【更新】为例介绍几个事件发生的先后顺序:

1).GridView控件的GridView1_RowUpdating()--------------此时参数 e 中是零散的 Model 的个属性的值
2).数据源控件的ods_Updating()------------------------此时参数 e 中是一个 Model 模型,是将上一步中的各个零散的属性值组合起来的
  (前两个事件,由于是在调用【更新】代码之前触发的,所以可以对用户更新的数据进行校验或修改)
3).调用了业务逻辑层的【更新】方法(处理更新)
4).数据源控件的GridView1_RowUpdated()
5).控件的ods_Updated()
  (后两个方法,可以通过判断e.Exception是否为空,来判断在程序的第3步执行中有没有发生异常,e.ExceptionHandled---表示在程序中处理更新操作过程中引发的异常已被处理)

 1         /// <summary>
 2         /// 第一个处理
 3         /// </summary>
 4         /// <param name="sender"></param>
 5         /// <param name="e"></param>
 6         protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
 7         {
 8             //TODO:可以对用户更新的数据进行校验或修改
 9 
10             //此时参数 e 中是零散的 Model 的个属性的值
11         }
12 
13         /// <summary>
14         /// 第二个处理
15         /// </summary>
16         /// <param name="sender"></param>
17         /// <param name="e"></param>
18         protected void ods_Updating(object sender, ObjectDataSourceMethodEventArgs e)
19         {
20             //TODO:可以对用户更新的数据进行校验或修改
21 
22             //此时参数 e 中是一个 Model 模型,是将上一步中的各个零散的属性值组合起来的
23         }
24 
25         /// <summary>
26         /// 第三个处理
27         /// </summary>
28         /// <param name="sender"></param>
29         /// <param name="e"></param>
30         protected void GridView1_RowUpdated(object sender, GridViewUpdatedEventArgs e)
31         {
32             if (e.Exception != null)
33             {
34                 //作异常的处理
35                 Maticsoft.Common.MessageBox.Show(this, "更新时出错!");
36 
37                 //设为True,表示在程序中处理更新操作过程中引发的异常已被处理。
38                 e.ExceptionHandled = true;
39             }
40 
41         }
42 
43         /// <summary>
44         /// 第四个处理
45         /// </summary>
46         /// <param name="sender"></param>
47         /// <param name="e"></param>
48         protected void ods_Updated(object sender, ObjectDataSourceStatusEventArgs e)
49         {
50             //TODO:可以通过判断e.Exception是否为空,来判断在程序的第3步执行中有没有发生异常
51         }

 

数据源控件

标签:style   blog   io   color   ar   os   使用   sp   数据   

原文地址:http://www.cnblogs.com/skyl/p/4096241.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!