GridView 多筆編輯批次存檔
轉貼]GridView 多筆編輯批次存檔
http://www.dotblogs.com.tw/jeff377/archive/2008/03/17/1762.aspx
GridView 多筆編輯批次存檔GridView 預設的編輯儲存動作都是單筆的,若希望能 GridView 多筆編輯,按個鈕再進行批次儲存的動作,實作上相當簡單,只要四行程式碼就可以達成了,現在來看一下實作的步驟。
1.先將欲編輯的欄位轉成 TemplateField。 
2.在 ItemTemplate 中置入可編輯的控制項,並繫結欄位。也可以 aspx 程式碼中直接把原來的 EditTemplate 直接改為 ItemTemplate。 
3.按鈕後執行 GridView 批次異動的動作。
設計階段的畫面及 aspx 程式碼如下所示
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"> 
<title>未命名頁面</title> 
</head> 
<body> 
<form id="form1" runat="server"> 
<div> 
<asp:Button ID="btnBatchUpdate" runat="server" Text="批次存檔" /><br /> 
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ProductID" 
DataSourceID="SqlDataSource1" EmptyDataText="沒有資料錄可顯示。"> 
<Columns> 
<asp:BoundField DataField="ProductID" HeaderText="ProductID" ReadOnly="True" SortExpression="ProductID" /> 
<asp:BoundField DataField="ProductName" HeaderText="ProductName" SortExpression="ProductName" /> 
<asp:TemplateField HeaderText="UnitPrice" SortExpression="UnitPrice"> 
<ItemTemplate> 
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("UnitPrice") %>'></asp:TextBox> 
</ItemTemplate> 
</asp:TemplateField> 
<asp:TemplateField HeaderText="UnitsInStock" SortExpression="UnitsInStock"> 
<ItemTemplate> 
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("UnitsInStock") %>'></asp:TextBox> 
</ItemTemplate> 
</asp:TemplateField> 
<asp:TemplateField HeaderText="Discontinued" SortExpression="Discontinued"> 
<ItemTemplate> 
<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Bind("Discontinued") %>' /> 
</ItemTemplate> 
</asp:TemplateField> 
</Columns> 
</asp:GridView> 
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString1 %>" 
ProviderName="<%$ ConnectionStrings:NorthwindConnectionString1.ProviderName %>" 
SelectCommand="SELECT [ProductID], [ProductName], [UnitPrice], [UnitsInStock], [Discontinued] FROM [Products]" 
UpdateCommand="UPDATE [Products] SET [UnitPrice] = @UnitPrice, [UnitsInStock] = @UnitsInStock, [Discontinued] = @Discontinued WHERE [ProductID] = @ProductID"> 
<UpdateParameters> 
<asp:Parameter Name="ProductName" Type="String" /> 
<asp:Parameter Name="UnitPrice" Type="Decimal" /> 
<asp:Parameter Name="UnitsInStock" Type="Int16" /> 
<asp:Parameter Name="Discontinued" Type="Boolean" /> 
<asp:Parameter Name="ProductID" Type="Int32" /> 
</UpdateParameters> 
</asp:SqlDataSource> 
</div> 
</form> 
</body> 
</html>
再來就是在按下按鈕時撰寫 GridView 批次儲存的程式碼 
Partial Class _Default 
Inherits System.Web.UI.Page 
Protected Sub btnBatchUpdate_Click() Sub btnBatchUpdate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnBatchUpdate.Click 
Dim N1 As Integer 
For N1 = 0 To GridView1.Rows.Count - 1 
'逐筆異動資料庫 
GridView1.UpdateRow(N1, False) 
Next 
End Sub 
End Class
 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号