改善 DataGrid 的功能,提高客户的体验 1

 DataGrid 提供了丰富的数据显示功能,但在对其进行扩展却不是十分的容易。好在它提供了很多的接口供我们扩展。

OnItemCommand        :对自定义按钮定义 CommandName ,可通过 CommandName 来区分实现不同的功能。

<EditCommandColumn></EditCommandColumn> 内的接口
OnCancelCommand    
OnEditCommand       
OnUpdateCommand  

Item 创建时的事件(只在 Create 时执行)
OnItemCreated
Item 数据绑定的事件 (在每次 render 时都执行)
OnItemDataBound


 DataGrid 提供的 <EditCommandColumn></EditCommandColumn> 可以实现对 Row 中的数据进行修改和提交,功能十分强大。但是却没有提供客户端的功能扩展。那我们应该怎么办呢?
  好在 DataGrid 有个 OnItemDataBound 事件,这样我们就有机会在 OnUpdateCommand 执行之前增加客户端功能了。
实现代码如下:
protected void dgRankList_ItemDataBound(object sender, DataGridItemEventArgs e)
    
{
        
if (e.Item.ItemType == ListItemType.EditItem)
        
{
            WebControl okLbtn 
= (LinkButton) e.Item.Cells[4].Controls[0];
            
if (okLbtn != null)
            
{
                TextBox txtEditLower 
= (TextBox) e.Item.Cells[1].FindControl("txtEditLower");
                TextBox txtEditUpper 
= (TextBox)e.Item.Cells[1].FindControl("txtEditUpper");
                TextBox txtEditRank 
= (TextBox)e.Item.Cells[1].FindControl("txtEditRank");

                okLbtn.Attributes.Add(
"onclick",
                    
string.Format("return validateRankReg('{0}','{1}','{2}');",
                    txtEditLower.ClientID, txtEditUpper.ClientID, txtEditRank.ClientID));
            }

        }

    }
posted @ 2008-03-04 09:14  老大卫  阅读(285)  评论(0编辑  收藏  举报