在 DataGrid 的 Footer 中添加控件


    打算在 Footer 的各列中输入字段的信息,最后一列是一个保存按钮。输入信息的列可以用  TemplateColumn 列来实现, EditCommandColumn 列的 Footer 中添加一个 ImageButton ,点击后保存信息。  

一、静态方式添加
<asp:TemplateColumn>有一个子标签    <FooterTemplate>,可以再此加入 TextBox 控件,并且 DataGrid 的 ShowFooter 属性显示设置为 true, 其默认值为 false 。

< asp:TemplateColumn  SortExpression ="dm"  HeaderText ="代码" >
    
< ItemTemplate >
        
<% # DataBinder.Eval(Container,  " DataItem.dm " %>
        
</ asp:Label >
    
</ ItemTemplate >
    
< FooterTemplate >
        
< asp:TextBox  id ="txtDmAdd"  runat ="server"  Width ="70px" ></ asp:TextBox >
    
</ FooterTemplate >
    
< EditItemTemplate >
        
<% # DataBinder.Eval(Container,  " DataItem.dm " %>
    
</ EditItemTemplate >
</ asp:TemplateColumn >
< asp:TemplateColumn  SortExpression ="mc"  HeaderText ="名称" >
    
< ItemTemplate >
        
<% # DataBinder.Eval(Container.DataItem, " mc " ) %>
    
</ ItemTemplate >
    
< FooterTemplate >
        
< asp:TextBox  id ="txtMcAdd"  runat ="server" ></ asp:TextBox >
    
</ FooterTemplate >
    
< EditItemTemplate >
        
< asp:TextBox  id =txtMc  runat ="server"  Text ='<%#  DataBinder.Eval(Container.DataItem,"mc")% > '>
        
</ asp:TextBox >
    
</ EditItemTemplate >
</ asp:TemplateColumn >

< asp:EditCommandColumn  ButtonType ="LinkButton"  HeaderText ="编辑"
    EditText
="编辑"  UpdateText ="保存"   CancelText ="取消"   >
</ asp:EditCommandColumn >


二、动态方式添加保存按钮 ImageButton
动态生成控件较静态方式灵活,它不要求列是 TemplateColumn ,只要找到 DataGrid 中的单元格,就可以在这个单元格的 Controls 集合中添加一个动态生成的控件就可以了。

Private   Sub  dgdData_ItemCreated( ByVal  sender  As   Object ByVal  e  As  System.Web.UI.WebControls.DataGridItemEventArgs)  Handles  dgdData.ItemCreated
     
Select   Case  e.Item.ItemType
        
Case  ListItemType.Footer
            
Dim  SaveAddButton  As  ImageButton
            SaveAddButton 
=   New  ImageButton
            
With  SaveAddButton
                .ID 
=   " btnSaveAdd "
                .ImageUrl 
=   " \iOffice\img\save.gif "
                .ImageAlign 
=  ImageAlign.Middle
                .Visible 
=   True
            
End   With
            e.Item.Cells(
2 ).Controls.Add(SaveAddButton)
            
AddHandler  SaveAddButton.Click,  AddressOf  SaveAddButton_Click  ' 动态邦定事件方法
         Case   Else
    
End   Select
End Sub

Private   Sub  SaveAddButton_Click( ByVal  sender  As  System.Object,  ByVal  e  As  System.web.UI.ImageClickEventArgs)
    
Dim  txtDmAdd  As  TextBox
    
Dim  txtMcAdd  As  TextBox
    
Dim  arrValue( 2 As   String

    txtDmAdd 
=  sender.parent.parent.findcontrol( " txtDmAdd " )
    txtMcAdd 
=  sender.parent.parent.findcontrol( " txtMcAdd " )

    arrValue(
0 =  DbConfig.SafeSql( Trim (txtDmAdd.Text))
    arrValue(
1 =  DbConfig.SafeSql( Trim (txtMcAdd.Text))
    
    library.CodeAdd(arrValue) 
' library.CodeAdd 调用添加记录的存储过程
   
End Sub

 

你可能感兴趣的:(datagrid)