2009-08-18 2 views
1

어셈블리의 특정 유형에 대한 속성을 기반으로 일부 입력 필드를 노출해야합니다.동적 UI를 C#으로 작성 하시겠습니까?

나는 그런 접근 방식이 얼마나 일반적인 것인지 잘 모르겠습니다. 아마도 더 쉬운 방법이있을 것입니다. 어쩌면 서버가 아닌 클라이언트 쪽 일 수도 있습니다.

누군가 이와 같은 일을하는 좋은 방법을 알고 있다면 도움을 주시면 감사하겠습니다.

그에 따라 입력 컨트롤을 만들고 일부 div 컨테이너에 컨트롤을 추가 할 수 있습니까? 그것보다 더 복잡한 지 확실하지 않습니다. 어떻게 든 CSS 클래스를 컨트롤에 추가해야합니다. 그러면 CSS 클래스가 멋지게 배치됩니다. 그건 까다로울 수 있습니다.

+1

어떤 서버 측 언어로 작업하고 있습니까? – Sampson

+0

나는 C# 언어로 작업 중이다 ........ – topwik

+0

@Jonathan Sampson : 동의 함. 어떤 서버 측 언어도 @towps가 원하는 것을 할 것입니다 ... 그러나 어떻게 100 % 언어에 의존합니다. – Randolpho

답변

0

결국 jQuery를 활용했습니다.

필요한 기본 레이아웃으로 간단한 마크 업을 배치했습니다.

동적으로 컨트롤을 생성하기 위해 jQuery 메서드를 사용하여 javascript로 모든 작업을 수행했습니다.

물론 이것은 데이터를 렌더링하기에 충분한 지능적으로 UI에 일부 데이터 세트를 반환해야합니다.

+0

물론 C#이 아니지만이 방법이 더 나은 것으로 나타났습니다. – topwik

1

이 모든 것은 표준 asp.net 개발과 비슷합니다. 좋은 튜토리얼은 당신을 도울 수 있어야합니다. ASP 서버 컨트롤의 경우 CssClass 속성을 사용하여 컨트롤의 클래스를 설정합니다.

여기 W3C 학교의 asp.net tutorial입니다.

+0

이 합의한 바에 따르면, 웹 프로그래밍의 요점은 어떤 조건을 기반으로 동적 인 컨트롤을 렌더링하는 것입니다. –

0

리플렉션을 사용하여 어떤 엔티티 엔티티가 있는지 파악한 다음 입력 필드를 만드는 속성 유형을 기반으로합니다. 코드 뒤에 입력을 처리하기 위해 컨트롤을 동적으로 만들어야합니다. 그 컨트롤과 ID를 제공했는지 확인하십시오. 이 컨트롤을 포스트 백에 다시 만들어야합니다. 이것은 동적 속성 편집기처럼 보입니다. 무료로 제공되는 프로그램이있을 수 있습니다.

0

UI가 완전히 동적 일 필요가없는 경우 모든 컨트롤을 Visible = "false"로 설정된 선택적 컨트롤과 함께 포함 할 수 있습니다. 그런 다음 코드 숨김에서 적절한 컨트롤을 선택적으로 활성화합니다. 예를 들어 :

Default.aspx를

<asp:Button ID="EvenButton" runat="server" Text="Even" Visible="false" /> 
    <asp:Button ID="OddButton" runat="server" Text="Odd" Visible="false" /> 

하여 default.aspx.cs

protected void Page_Load(object sender, EventArgs e) 
    { 
     String msg = "A message to count"; 

     if (msg.Length % 2 == 0) 
     { 
      // Enable the Even Button 
      EvenButton.Visible = true; 
     } 
     else 
     { 
      OddButton.Visible = true; 
     } 
    } 

이 방법의 장점은 마크 업에 쉽게 적절한 CSS 물건을 배치 할 수 있다는 것입니다. 반면에 UI가 이보다 훨씬 동적 인 경우에는 코드 숨김에 컨트롤을 동적으로 만들고 Controls.Add()를 호출하여 컨트롤을 페이지에 추가해야 할 것입니다. 그러나이 방법은 레이아웃하기가 더 어렵습니다. 그리고 각 포스트 백에서 이벤트 핸들러를 다시 배선하는 것과 같은 작업을 처리해야합니다.

희망이 있습니다.

관련 문제