ID가 "gvMain"이라는 GridView가 있고 그 안에 ID가 "ddl"이라는 DropDownList가 있을때
DataTable로 가져온 데이터를 우선 gvMain에 바인딩 시켜준다.
DataTable dtMain = New Datatable(); // -> 이 데이터 테이블은 Class Level단의 데이터테이블이다.
...
...
gvMain.DataSource = dtMain;
gvMain.DataBind();
그런 다음 GridView의 DataRowBound 이벤트때 FindControl로 DropDownList를 찾아
DorpDownList에 데이터를 바인딩 시켜주면 된다.
(DataRowBound이벤트는 GridView가 Row를 바인딩 시킬때 마다 발생하는 이벤트이다.)
protected void gvMain_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DropDownList gvddl = (DropDownList)e.Row.FindControl("ddl");

// * gvddl은 GridView안의 DropDownList를 찾아 새롭게
// 이름을 준것()
// * Findcontrol뒤의 ddl이라는 것은 GridView안에 있는 DropDownList의 ID..
// 이 ID로 DorpDownList를 찾아내는 것이다.
gvddl.DataSource = dtMain;
gvddl.DataTextField = "Column0";
gvddl.DataValueField = "Column1"; // -> Column0과 Column1은 dtMain의 컬럼명을 써준다.
gvddl.DataBind();
}
}
FindControl로 GridView 안에 ddl이라는 DropDownList를 찾는데 이것이 DropDownList라는 타입이고 새로 gvddl이라고 부르겠다.
그리고 gvddl이라는 이름으로 데이터를 바인딩 시켜주는데 위에서 Class level단의 데이터 테이블로 가져온 데이터를 이용하여 DropDownList의 DataTextField에는 Column0이라는 컬럼을 바인딩 시켜주고 DataValueField에는 Column1이라는 컬럼을 바인딩 시켜주겠다는 것이다.

+ Recent posts