2009-08-12 1 views
0

asp.net 웹 페이지에서 소스 코드가없는 컨트롤을 사용하고 있습니다.이 컨트롤은 내 레이아웃을 손상시키지 않는 HTML에서 원하지 않는 BR (새 줄) 태그를 렌더링합니다. 나는 컨트롤 동작을 깨지 않고 렌더링 프로세스를 제어 할 수있는 방법이 있는지 알고 싶습니다 (매우 복잡한 Ajax로 구동되는 컨트롤 비헤이비어) 또는 클라이언트 측에서 뭔가를하십시오.렌더 프로세스를 제어하거나 BR의 태그 동작을 억제하는 방법은 무엇입니까?

나는 그것을 해결하기 위해 CSS를 사용하려고했으나 성공하지 않고 ... 사실, 그것은 IE6에서 파이어 폭스하지만 나던 작동합니다

 
#my-div-place-holder br 
{ 
    position: absolute;/*hack: Supress BR tags*/ 
} 

답변

1

당신은 컨트롤에 대한 자신의 렌더링을 주입하기위한 두 가지 옵션이 있습니다

  1. 서브 클래스 서버 컨트롤을하고 Render 메소드를 오버라이드 (override).
  2. 사용 ASP.Net 당신이 하위 클래스 선택하는 경우는 전체를 구현할 필요가 없습니다, 당신은 렌더링의 다양한 측면을 수행하는 기본 클래스 메소드에 액세스 할 수 (있는 경우)있을 수 있습니다 Control Adapters

논리를 직접 렌더링합니다.

서버 측 렌더링을 탐구하지 않으려면 javascript를 사용하여 동일한 작업을 수행 할 수 있습니다.

+0

@Ken Browning, 빠른 답장을 보내 주셔서 감사합니다. 나는 동료들과 이야기를하고 있었는데 그들은 똑같은 말을했다. 나는 서버 컨트롤을 서브 클래 싱하고 렌더 메소드를 오버라이드하는 것이 더 좋다. – Cleiton

1

어떻게 렌더링 된 HTML을 필터링하는 HttpModule의 사용에 대한? CSS 아이디어가 마음에 들지만, IE에서는 작동하지 않습니다.

1

나는 HttpModule과 ResponseFilter로 갈 것이다. RegEx를 사용하여 br 태그를 찾은 다음 응답을 클라이언트에 보내기 전에 String.Empty로 바꿉니다.

+0

woww ... 나는 그것을 알지 못했다! 나는 한 번 시험해 볼 것이다. – Cleiton

관련 문제