在 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 ObjectByVal 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(2As 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

 
posted @ 2007-07-06 18:01  Felix Liang  阅读(333)  评论(1)    收藏  举报