สมมติว่ามีตารางผลิตภัณฑ์ที่มีเขตข้อมูล (Id, Name, Volume,...) และเราต้องการอัปเดตค่าปริมาณเป็นชุดในครั้งเดียว
ขั้นแรก ใน Gridview คอลัมน์ปริมาณจะแสดงเป็น TemplateField คุณสมบัติคอลัมน์อื่นๆ จะถูกตั้งค่าเป็นแบบอ่านอย่างเดียว และรูปแบบการแสดงผลจะถูกตั้งค่าเป็นกล่องข้อความ
<asp:TemplateField HeaderText="ปริมาณ">
<เทมเพลตรายการ>
<asp:TextBox ID = "editQuantity" runat = "เซิร์ฟเวอร์" CssClass = "GridEditingRow"
width="24px" MaxLength="2" Text='<%#Eval("ปริมาณ")%>' />
</เทมเพลตรายการ>
</asp:TemplateField>
เพิ่มตัวควบคุมปุ่มด้านล่าง GridView และกำหนดวิธีการ onclick เป็น updateButton_Click
รหัส updateButton_Click สุดท้ายคือ:
โมฆะที่ได้รับการป้องกัน updateButton_Click (ผู้ส่งวัตถุ EventArgs e)
-
int rowsCount = grid.Rows.Count;
GridViewRow gridRow;
TextBox quantityTextBox;
สตริง productId
ความสำเร็จ
;
// สำรวจแต่ละแถวใน GridView
สำหรับ (int i = 0; i < rowsCount; i++)
-
// รับแถวปัจจุบัน
gridRow = grid.Rows[i];
// ใช้ DATAKEYS เพื่อรับหมายเลข ID ที่ไม่แสดง
Id = grid.DataKeys[i].Value.ToString();
-
quantityTextBox = (กล่องข้อความ)gridRow.FindControl("editQuantity");
// แปลงเป็นจำนวนเต็ม หากอินพุตเป็นอักขระที่ไม่ถูกต้อง Int32.TryParse ส่งคืน FALSE
ถ้า (Int32.TryParse(quantityTextBox.Text, ปริมาณออก))
-
// เรียกใช้เมธอดชั้นธุรกิจเพื่ออัปเดตข้อมูล
ความสำเร็จ = ความสำเร็จ && BLL.UpdateItem (รหัส ปริมาณ);
-
อื่น
-
//การอัปเดตล้มเหลว
ความสำเร็จ = เท็จ;
-
// แสดงข้อมูล
statusLabel.Text = สำเร็จ?
"<br />อัปเดตสำเร็จแล้ว!<br />" :
"<br />การอัปเดตล้มเหลว!<br />";
-
//เชื่อมโยง GridVIEW อีกครั้ง
เติมข้อมูลGridView();
}
http://www.cnblogs.com/timone/archive/2006/11/17/564171.html