ผลการดำเนินงาน: เลือกแถวในตารางหลักและรับรายละเอียดของแถวจากตาราง
วิธีที่ 1: การใช้โค้ด
ใส่ GridView และ DetailView บนเพจ ผูกข้อมูลเข้ากับ GridView และตั้งค่าคีย์หลัก จากนั้นเขียนโค้ดในเหตุการณ์ SelectedIndexChanged: เมื่อการเลือกเปลี่ยนแปลง DetailView ก็จะเปลี่ยนเป็นรายละเอียดที่เกี่ยวข้องด้วย
รหัสเฉพาะ:
ใช้ระบบ;
ใช้ System.Data;
โดยใช้ระบบการกำหนดค่า;
ใช้ System.Collections;
ใช้ System.Web;
โดยใช้ System.Web.Security;
โดยใช้ System.Web.UI;
ใช้ System.Web.UI.WebControls;
ใช้ System.Web.UI.WebControls.WebParts;
ใช้ System.Web.UI.HtmlControls;
โดยใช้ System.Data.SqlClient;
คลาสสาธารณะบางส่วน MasterDetail2: System.Web.UI.Page
-
โมฆะที่ได้รับการป้องกัน Page_Load (ผู้ส่งวัตถุ EventArgs e)
-
ถ้า (!หน้า IsPostBack)
-
string SQL = "SELECT * FROM [คำสั่งซื้อ]";
GridView1.DataSource = การเชื่อมโยง (SQL);
GridView1.DataKeyNames = สตริงใหม่ [] { "OrderID" };
GridView1.DataBind();
-
}
การป้องกันเป็นโมฆะ GridView1_SelectedIndexChanged (ผู้ส่งวัตถุ EventArgs e)
-
สตริง OrderID = Convert.ToString(GridView1.SelectedValue);
string SQL = "SELECT * FROM [รายละเอียดการสั่งซื้อ] โดยที่ [OrderID]='" + OrderID + "'";
DetailView1.DataSource = การเชื่อมโยง (SQL);
รายละเอียด View1.DataBind();
-
/***////// <สรุป>
/// ดำเนินการคำสั่ง SQL เพื่อส่งคืนตารางข้อมูล
/// </สรุป>
/// <param name="SQL">คำสั่ง SQL ที่ต้องการดำเนินการ</param>
/// <returns>ตารางข้อมูล</returns>
ป้องกัน DataTable Binding (สตริง SQL)
-
SqlConnection myConn = SqlConnection ใหม่ (ConfigurationManager.ConnectionStrings["AppConnectionString1"].ConnectionString);
DataTable dt=ใหม่ DataTable();
SqlDataAdapter myAdapter = SqlDataAdapter ใหม่ (SQL, myConn);
myAdapter.Fill(dt);
กลับ dt;
}
-
วิธีที่ 2: ตั้งค่าคุณสมบัติการควบคุมเพื่อวาง GridView และ DetailView บนเพจ จากนั้นแต่ละรายการจะสอดคล้องกับแหล่งข้อมูล ซึ่งสามารถทำได้ตราบใดที่คุณใช้ SelectedValue ของ GridView เป็นพารามิเตอร์ใน SelectCommand ของแหล่งข้อมูลของ DetailView
<เลือกพารามิเตอร์>
<asp:ControlParameter ControlID = "EmployeesGridView" ชื่อ = "AddressID" PropertyName = "SelectedValue"
ประเภท = "Int32" />
</เลือกพารามิเตอร์>
ทั้งสองวิธีนั้นง่ายมาก วิธีที่ 2 ไม่มีโค้ดโดยทั่วไป และวิธีที่ 1 มีการควบคุมที่ยืดหยุ่นกว่า