Sun_Blue_Sky

菩提本无树,明镜亦非台,本来无一物,何处惹尘埃 寻求内心的平静
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

datagrid的一点注意事项

Posted on 2010-02-26 14:46  Sun_Blue_Sky  阅读(137)  评论(0)    收藏  举报

在没有点击编辑之前,模板列里面的EditItemTemplate里面的控件没有生成的。当点击编辑的时候,设置this.DataGrid1.EditItemIndex = ........,然后重新绑定Grid,页面PostBack,根据你指定的第i编辑。才会生成对应的第i的编辑模板里面的控件。而这个时候,对应的这个第i行的ItemTemplate里面的控件是不生成的。

代码
   private void dgType_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
        {
            
this.dgType.EditItemIndex = e.Item.ItemIndex;
            
this.BindGrid();
        }

        
private void dgType_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
        {
            
this.dgType.EditItemIndex = -1;
            
this.BindGrid();
        }
        
//更新
        private void dgType_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
        {
           
//.......
        }

        
//删除
        private void dgType_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
        {
            
//........
        }

private void dgType_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
        {
            
//如果页面上使用了TemplateColumn的话e.Item.Cells[mintDesktopValue].Text只能取到""值,在BoundColumn中这样取值才会生效
            //如想想取到值可以在页面添加个控件绑定值然后使用FindControl获得该值
            //HtmlGenericControl desk 
= e.Item.Cells[mintDesktopValue].FindControl("spHid"as HtmlGenericControl;
         }
    }