구현 효과: 기본 테이블에서 행을 선택하고 테이블에서 행의 세부정보를 가져옵니다.
방법 1: 코드 구현.
페이지에 GridView와 DetailView를 배치합니다. 데이터를 GridView에 바인딩하고 기본 키를 설정한 다음 SelectedIndexChanged 이벤트에 코드를 작성합니다. 선택 항목이 변경되면 DetailView도 해당 세부 정보로 변경됩니다.
특정 코드:
시스템 사용;
System.Data 사용;
System.Configuration 사용;
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
{
protected void Page_Load(개체 전송자, EventArgs e)
{
if (!Page.IsPostBack)
{
string SQL = "SELECT * FROM [주문]";
GridView1.DataSource = 바인딩(SQL);
GridView1.DataKeyNames = new string[] { "OrderID" };
GridView1.DataBind();
}
}
protected void GridView1_SelectedIndexChanged(개체 전송자, EventArgs e)
{
string OrderID = Convert.ToString(GridView1.SelectedValue);
string SQL = "SELECT * FROM [OrderDetails] WHERE [OrderID]='" + OrderID + "'";
DetailsView1.DataSource = 바인딩(SQL);
세부정보View1.DataBind();
}
/**//// <요약>
/// SQL 문을 실행하여 데이터 테이블을 반환합니다.
/// </summary>
/// <param name="SQL">실행할 SQL문</param>
/// <returns>데이터 테이블</returns>
보호된 DataTable 바인딩(문자열 SQL)
{
SqlConnection myConn = new SqlConnection(ConfigurationManager.ConnectionStrings["AppConnectionString1"].ConnectionString);
DataTable dt=new DataTable();
SqlDataAdapter myAdapter = new SqlDataAdapter(SQL, myConn);
myAdapter.Fill(dt);
반환
}
}
방법 2: 페이지에 GridView 및 DetailView를 배치하도록 컨트롤 속성을 설정한 다음 각각 데이터 원본에 해당합니다. 이는 DetailView 데이터 소스의 SelectCommand에서 GridView의 SelectedValue를 매개 변수로 사용하는 한 달성될 수 있습니다.
<매개변수 선택>
<asp:ControlParameter ControlID="EmployeesGridView" Name="AddressID" PropertyName="SelectedValue"
유형="Int32" />
</SelectParameters>
두 방법 모두 매우 간단하며 방법 2는 기본적으로 코드가 없으며 방법 1은 보다 유연하게 제어할 수 있습니다.