아마 Typed DataSet을 즐겨 쓰시는 분 중에 저랑 같은 문제를 겪으신 분이 몇몇 있으실줄로 아는데..
하나의 데이터셋에 릴레이션이 결린 데이터테이블이 여러개 일 경우 하나의 그리드뷰에 바인딩 해야할 때 고민되신적 없나요?(저만 그럴지도..ㅠㅠ)
예를 들면 이런거죠..
protected void gvCompanyList_Init(object sender, EventArgs e) { DsTableAdapters.TB_CompanyTableAdapter adaptCompany = new DsTableAdapters.TB_CompanyTableAdapter(); DsTableAdapters.TB_ProductTableAdapter adaptProduct = new DsTableAdapters.TB_ProductTableAdapter(); Ds ds = new Ds(); adaptCompany.Fill(ds.TB_Company); //회사정보 채우기 adaptProduct.Fill(ds.TB_Product); //제품정보 채우기 gvCompanyList.DataSource = ds.TB_Product; gvCompanyList.DataBind(); } |
위에서 DataSet에 TB_Company와 TB_Product가 Relation이 걸려 있어도 실제로 바인딩해보면 TB_Product만 바인딩 되게 됩니다..
그렇다고 저 테이블 두개 JOIN해서 가져오는 쿼리나 sp같은거 따로 만들기도 웃기는 상황.....
하지만 요로케...
//--------- *.cs protected string GetParentData(object dataItem, string name) { DataRowView drv = dataItem as DataRowView; return drv.Row.GetParentRow("FK_TB_Product_TB_Company")[name].ToString(); //DataSet에서의 릴레이션 이름 } //--------- *.aspx <GridView .......... <%# GetParentData(Container.DataItem, "CompanyName") %> //부모테이블의 컬럼명 .......</GridView> |
요로코롬 템플릿필드같은데서 써주면 마치 JOIN쿼리처럼 부모데이터에 접근 가능하지요..
반대로 GetChildRows 메소드 쓰시면 자식테이블에도 접근 가능합니다..
'.net' 카테고리의 다른 글
37 라인의 코드로 자신의 인터넷과 웹사이트를 Full-Text 검색하기 (0) | 2007.05.03 |
---|---|
커스텀 로그인 컨트롤 (1) | 2007.05.03 |
WebPart 프레임워크의 이해 - 커스터마이징 가능한 페이지 만들기6 (1) | 2007.05.03 |
WebPart 프레임워크의 이해 - 커스터마이징 가능한 페이지 만들기5 (0) | 2007.05.03 |
WebPart 프레임워크의 이해 - 커스터마이징 가능한 페이지 만들기4 (0) | 2007.05.03 |