2011-11-10 2 views
0

ASP.NET 3.5에서 내용에 표 자동 크기를 적용하여 (예 : 내부 컨트롤을 표시하는 데 필요한 최소 크기 사용) 어떻게 할 수 있습니까?Asp.Net - 표 내용의 크기

나는 두 개의 행을 가진 테이블을 가지고있다. 일부 행은 항상 표시 될 필요는 없습니다 (예 : 해당 행의 모든 ​​컨트롤이 숨겨져있는 경우). 나는 그 행들이 숨겨지기를 원한다. (또는 size = 0) 결과적으로 테이블은 더 작아지기를 바란다.

답변

0

정확한 설정을 알지 못하면 필요에 맞는 구체적인 답을 제시하기가 어렵습니다. 페이지 행에 표 행이 표시되면 표 행을 끄지 않는 한 적어도 하나의 행을 차지합니다. 한 가지 방법은 테이블 행을 runat = "server"로 설정 한 다음 해당 컨트롤이 표시되지 않는 경우 코드 숨김에 visible = "false"를 설정하는 것입니다. 코드 숨김에서

<tr id="tr" runat="server"> 
<td>Controls</td> 
</tr> 

:

if(ControlsNotShowing) 
    tr.Visible = false; 
+0

컨트롤 가시성을 수동으로 확인하지 않고도이 작업을 수행하는 더 쉬운 방법이 있기를 바랍니다. 이것은 일반적인 asp.net 웹 프로젝트 (VS의 프로젝트 템플릿 중 하나)입니다. – ace

+0

@ace 테이블 셀이나 행 내에서 컨트롤의 가시성을 확인하기 위해 재귀 함수를 조합 할 수 있다고 생각합니다. 그렇게하는 예제가 있습니다. 그렇지 않으면 클라이언트 측 옵션을 살펴야 할 수도 있습니다. –

+0

예, 재귀 함수가 작동합니다. "수동으로", 나는 가시성을 검사하기위한 코드를 작성해야한다는 것을 의미했습니다. 어쨌든 "데스크톱 앱"세계 (winforms, wpf)에서 왔으므로 존재하지 않는 TableLayoutPanel과 같은 것을 찾고있었습니다. – ace

0

당신은 자세한 내용을 제공해야 할 수도 있습니다,하지만 난 그것을 자상 할게요.

테이블과 td 셀의 너비 특성을 지정하지 않으면 테이블의 내용이 자동으로 크기가 조정됩니다. 그래서 그것은 쉬운 부분입니다.

행 표시 또는 숨기기에 대한 질문에 더 자세한 내용이 필요합니다. 당신이 코드 뒤에/서버 측면에서/숨기기를 표시하려는 경우, 당신은 행을 서버 컨트롤을하고 Visible 속성을 설정할 수 있습니다

<tr runat="server" id="row1"> 
<td>Hi</td> 
</tr> 

을 그리고 코드 뒤에, Visible 속성

row1.Visible = false 
설정

클라이언트 측에서 행을 숨기려면 javascript를 사용할 수 있습니다. 나는 당신이나 다른 질문에 맡길 것이지만, 자바 스크립트를 사용하여 행을 숨기면, 제거 된 행의 컨텐츠가 가장 넓 으면 테이블의 크기가 자동으로 조정됩니다.