2013-08-28 3 views
0

VB를 사용하여 ASP.NET 응용 프로그램에서 동적으로 빌드 된 페이지를 만들어야합니다. 이 페이지는 보고서에 대한 매개 변수 정보를 수집합니다.DB의 값을 기반으로 컨트롤 만들기

이름, 저장 프로 시저 및 필수 매개 변수와 같은 보고서 정보는 DB 테이블에 있습니다.

표에서 선택한 보고서에 대한 관련 매개 변수 값을 수집하기 위해 필요한 컨트롤 형식으로 사용할 수있는 'control_type'필드가 있습니다. 그래서 Report01을 선택하면 Report01에 대한 DB 행 형식이 표시되고 해당 보고서 행의 매개 변수 데이터에서 i_company_id라는 매개 변수에 정수 값을 수집해야하며이 값 형식을 선택하기 위해 생성 할 컨트롤이 있음을 알립니다 동적으로 생성 된 매개 변수 페이지에서) 'DropDownList'라고 말합니다.

내가 변수에 값을 제기 한 DB 및 장소에서 열을 얻는 경우에, 나는 다음

dim ddl as New VaraibleName 

처럼 뭔가를 할 수 그리고 나는 정상으로 목록을 채울 수 있습니다 다음

panel.controls.add(ddl) 

키 비트는 생성 할 컨트롤 유형이 변수 또는 다른 동적 정의 된 방법으로 제어 할 수 있습니다.

Private Function createVariable(inputName As String) As Object 
    Dim outVariable As Object = New Object 

    If (inputName = "DropDownList") Then 
     Dim targetVariable As DropDownList = New DropDownList() 
     With targetVariable 
      'You might change here its properties (passed via Object array for example) 
     End With 

     outVariable = targetVariable 
    End If 
    'Add as many conditions as variables you are expecting 

    Return outVariable 
End Function 

통화를 수행하여 :

+0

제목을 편집했습니다. "[제목에"태그 "가 포함되어 있어야합니까?] (http://meta.stackexchange.com/questions/19190/)"합의가 "아니오, 그렇지 않아야합니다"로 표시되어야합니다. –

답변

0

나는 다음과 같은 솔루션은 당신이 원하는 것을 제공하는 것을 이해

Dim ddl As Object = createVariable("VariableName") 
panel.Controls.Add(ddl) 

그냥 Controls이 코드를 사용하려면, 당신은 Object를 대체 할 수 Control (어느 쪽이든 작동합니다).

+0

멋진 아이디어! 매우 감사합니다. – MarkO

+0

@ MARKO 오신 것을 환영합니다. – varocarbas

관련 문제