Delete、Upadate、Insert事件触发常见错误

 

在Telerik中控件RadGrid控件出现的频率非常高,通常我们会希望RadGrid提供更多的功能,增删改事件是我们经常会遇到的问题。

在RadGrid的属性栏里有如下事件:

在RadGrid中有一个Button或者telerik:GridButtonColumn项中,其CommandName不为Delete(Update、Cancel、Edit,该列用Delete说明),当点击“删除”时发现Delete事件并没有发生,用debug跟踪发现,debug光标根本没有进入该DeleteCommand事件中,所以该Delete才没有发生。当CommandName=“Delete”时发现光标就进入DeleteCommand中了,这就说明该控件的Delete事件内部默认执行DeleteCommand的CommandName为Delete,只有当RadGrid控件内部某一标签的CommandName为Delete时候该标签的点击会自动的触发RadGrid的DeleteCommand事件。同理“取消、更新、插入”事件也是如此。

     如果在后台的代码中不想注册这么多的事件,此时可以用ItemCommand事件来统一注册。在后台这样写:

 

1         protected   void   rgDetailInfo_ItemItemCommand ( object   source,   GridCommandEventArgs   e )
2           {
3                   if   ( e . CommandName   = =   " btDelete " )
4                   {
5                           string   name   =   e . Item . OwnerTableView . DataKeyValues [ e . Item . ItemIndex ] [ " Name " ] . ToString ( ) ;
6                           dataService . DeleteOneConfigByParamName ( day,   sex,   name ) ;
7                   }
8                   if(e . CommandName   = = " btUpdate "
9                   {
10                       // 更新代码更新代码
11                  }
12                 
13          }

这时CommandName可以是系统默认的也可以是自定的字符串了。也可以多次判读,将添加,更新事件也写进去。ItermCommand事件先于DeleteCommand等事件执行,ItermCommand是在RadGrid内任何事件发生前发生的,所以也可以将事件的执行代码写到该事件内,从而不用多次注册其他事件了!

 

 

你可能感兴趣的:(.net,update,delete,事件处理,休闲)