2011-05-03 2 views
4

곧 회사에서 프로젝트를 시작할 예정이며 클라이언트가 텍스트 상자 또는 확인란을 관리자로 추가 할 수있는 옵션을 제공하고자합니다. 예를 들어 처음에는 내가 가질 수 있습니다.요청에 따라 TextBocex, CheckBoxes 추가 C#

이름과 같이 [텍스트 상자] 전화 [텍스트 상자]


그래서 클라이언트가 관리자로 로그인 한

이름 [텍스트 상자] 전화를 추가 할 수 있도록하고 싶습니다 [텍스트 상자 ] 브로셔 받기 [checkBox] // 클라이언트가 추가했습니다.

제가 알고 싶은 것은 어떤 아이디어가 많이 주시면 감사하겠습니다

을 (요소를 추가 할 수 있도록 사용자)이 설계하는 가장 좋은 방법이 될 것 인 것이다 .. 포털과 관리 부분에 대해 잊어 버려 나는 클라이언트의 요구에 따라 동적 설문 조사를 작성했던 과거에 한 일에서

감사

+0

데니스는 입력에 대한 여러분 모두 감사합니다 모두 중대 하 나는 – user710502

답변

2

사용자 (또는 관리자)가 자신의 양식을 정의하고 작성할 수있는 추가 aspx 양식을 만들 수 있으며, 변수 이름을 지정하고 컨트롤을 추가하여 데이터베이스의 특정 스키마

정의 폼 : 사용자 ID는 FormID

형태 : FormID는 FormName

FormElement :이 또한 관리자가 수행하고 모든 사람이 볼 수 할 수 물론 FormID 변수 이름 ControlType 지수

.

은 추가 할 수있는 특정 형태를 보려면 아직 다음 코드를 포함 다른 영문 페이지 :

protected void Page_Load(object sender, EventArgs e) 
    { 
     //you saved the FormName or ID to Session when you accessed it 
     string formName = Session["FormName"].ToString(); 
     //this handles getting the elements for this Form from DB 
     List<FormElement> elementList = FormElement.GetForForm(formName); 
     this.renderForm(elementList); 
    } 

    private void renderForm(List<FormElement> eList) 
    { 
     foreach(FormElement fe in eList) 
     { 
      //Labels left, Controls right, of course this is just a design decision 
      if(fe.Index%2==1) 
      { 
       Label lbl = new Label(); 
       lbl.Text = fe.Variable; 
       lbl.ID = fe.ControlType + fe.Variable; 
       divLeft.Controls.Add(lbl); 
      } 
      else 
      { 
       dynamic ctrl = null; 
       switch (fe.ControlType) 
       { 
        case "TextBox": 
         ctrl = new TextBox(); 
         break; 
        case "CheckBox": 
         ctrl = new CheckBox(); 
         break; 
        default: 
         break; 
       } 
       ctrl.ID = fe.ControlType + fe.Variable; 
       divRight.Controls.Add(ctrl); 
      } 
     } 
    } 

나중에 사용자가이 값에 의해 그 컨트롤에 입력받을 수있을 거라고 제출 타격 후 양식마다 고유해야하므로 divRight.FindControl (fe.ControlType + fe.Variable)에 액세스하십시오.

이 접근 방식은 .NET 4.0을 사용하고 있다고 가정합니다 (동적이기 때문에). 물론이 코드를 사용하지 않고도이 작업을 수행 할 수 있습니다. 코드가 더 많습니다.

내가 검색 한 내용인지 또는 도움이되었는지 알려주십시오. 내가 생각

감사합니다,

+0

예 데니스, 감사합니다 내 프로젝트에 대 한 좋은 접근 방법을 모두 sugestions를 사용하는 것 가장 좋은 방법은 두 가지 제안을 모두 사용하는 것입니다. 고맙습니다 – user710502

2

합니다. 다음 표가 포함 된 데이터베이스가 있습니다.

  1. 설문 조사 - 클라이언트 설문 조사 목록.
  2. 컨트롤 - 필요한 컨트롤 종류를 나열했습니다. 예 : 텍스트 상자, 체크 상자 등
  3. 설문 조사 컨트롤 - 설문 조사에 필요한 모든 컨트롤을 연결합니다.
  4. 사용자 값 - 사용 된 설문 조사를 기반으로 컨트롤에 입력 된 값을 저장합니다.

그런 다음 로직을 추가하여 내 데이터베이스에서 값을 읽음으로써 선택된 조사를 기반으로 컨트롤을 동적으로 생성했습니다.

+0

큰 입력이 매우 – user710502

관련 문제