저는 유지 관리하는 몇 가지 웹 응용 프로그램을 가지고 있으며 GridView를 데이터 소스에 바인딩하기 위해 동일한 코드 블록을 반복 작성하는 경우가 많습니다. 데이터 바인딩을 처리하는 일반 메서드를 만들려고하는데 Repeater 및 DataLists와 함께 작동하는 데 문제가 있습니다.일반 메서드를 통한 ASP.NET 컨트롤 바인딩
public void BindControl<T>(T control, SqlCommand sql) where T : System.Web.UI.WebControls.BaseDataBoundControl
{
cmd = sql;
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
control.DataSource = dr;
control.DataBind();
}
dr.Close();
cn.Close();
}
나는 단지의 호출에 "BindControls (myGridView, cmd를)"만드는 대신이 동일한 기본 블록을 다시 입력 내의 CommandText를 정의 할 수 있습니다 그 방법 : 여기
내가 지금까지 가지고있는 일반적인 방법이다 그리드를 바인딩해야 할 때마다 코드를 작성해야합니다.문제는 리피터 또는 데이터 목록에서 작동하지 않는 문제입니다. 이러한 각 컨트롤은 서로 다른 클래스의 해당 "DataSource"및 "DataBind"메서드를 상속합니다. 다른 포럼의 누군가가 인터페이스를 구현할 것을 제안했지만 그 작업을 수행하는 방법을 잘 모르겠습니다.
GridView, Datalist 및 Repeater는 BaseDataBoundControl, BaseDataList 및 Repeater 클래스에서 각각의 "DataBind"메서드를 가져옵니다. 어떻게 하나의 인터페이스를 만들어 모두 묶어 둘까요? 아니면이 방법으로 3 오버로드를 사용하는 것이 나을까요?
- 데이브