2011-09-02 6 views
1

동적으로 생성 된 htmltable이 있습니다. 이 표를 인쇄하고 싶습니다. 이것은 많은 페이지로 구성됩니다. window.print()를 7,8 페이지로 인쇄했을 때. 하지만 내 문제는 각 페이지 (A4 크기)에 머리글과 바닥 글이 필요하다는 것입니다. 각 페이지에 머리말과 꼬리말을 어떻게 설정할 수 있습니까? C#에서 asp.net을 사용하고 있습니다.asp.net을 사용하여 HTML 표를 인쇄하는 방법. 각 페이지의 머리말과 꼬리말

.aspx 페이지에 머리글과 바닥 글을 넣었지만 인쇄 할 때 데이터가 동적으로 바인딩된다는 문제가 있습니다. 인쇄가 여러 페이지 (예 : 4 또는 5 페이지는 데이터에 따라 다름)로 넘어갑니다. 헤더가 첫 페이지에오고 마지막 페이지에 꼬리말이 있습니다. 각 페이지에 머리글과 바닥 글이 필요합니다.

이 작업을 수행 할 수있는 제안이나 다른 방법을 제공해주십시오.

답변

-1

머리글 영역과 바닥 글 영역을 정의하고 각 영역마다 하나의 div를 가져 와서 코드 숨김 페이지에서 div에 액세스하여 div에 생성 된 HTML을 넣는 마스터 페이지를 만듭니다. div. innerHTML을 == "당신의 HTML 테이블에 포함 된 문자열"

+0

마스터 페이지가 있습니다. 마스터 페이지 2보기에서 their.In 두 번째보기에서 하나의 HTML 테이블 하나 동적으로 생성하고 표시 div (div.InnerHtml) 같은 div 있습니다. 이 html 테이블에는 동적으로 생성되는 머리글 내용과 바닥 글 부분이 있습니다. 나는 이것을 인쇄하고 싶다. 나는 window.print를 사용했지만 각 페이지의 쇼 머리말과 꼬리말을 위해 무엇을 할 수 있습니까? – Areeb

+0

마스터 페이지에서 인쇄 문제를 해결하지 않습니다. – cjk

0

을 경우 절대적으로, 당신은 X는 세포의 수는 모든 X 테이블 셀에 페이지 나누기를 삽입해야합니다 머리글/바닥 글을 가져야 당신 각 페이지에 나타납니다. 페이지 나누기는 머리글과 바닥 글을 복제해야합니다.

HEADER 
<table> 
    <tr><td>Cell Data</td></tr> 
    <!-- A bunch of rows --> 
    <tr><td>Cell Data</td></tr> 
    <tr> 
    <td> 
    Cell Data 
    <div class="pagebreak"> 
     <div>FOOTER</div> 
     <!-- Print page will break here --> 
     <div class="header">HEADER</div> 
    </div> 
    </td> 
    </tr> 
    <tr><td>Cell Data</td></tr> 
    <!-- A bunch of rows --> 
    <tr><td>Cell Data</td></tr> 
    <tr> 
    <td> 
    Cell Data 
    <div class="pagebreak"> 
     <div>FOOTER</div> 
     <!-- Print page will break here --> 
     <div class="header">HEADER</div> 
    </div> 
    </td> 
    </tr> 
</table> 
FOOTER 

을 그리고 페이지에 다음과 같은 스타일을 추가 :

그래서, 테이블은 다음과 같이됩니다

<style type="text/css"> 
@media all 
{ 
    .pagebreak { display:none; } 
} 
@media print 
{ 
    .pagebreak { display:block; } 
    .pagebreak div.header { display:block;page-break-before:always; } 
} 
</style> 

편집 : 나는에 HTML을 업데이트 (희망)보다 그것을 만들 해야 할 일을 분명히하십시오.

+0

Paul 도움을 주셔서 감사합니다.이 예제에 대해 단계별로 진행하는 유일한 문제는 각 셀에 머리글, 바닥 글 및 페이지 나누기를 수동으로 넣고 있습니다. 내 셀에 세 줄이 있다고 가정하면 세 줄 뒤의 페이지도 끊어집니다. TD 라인의 데이터가 페이지 (A4)에 맞지 않으면 페이지 바닥 글이 다음 페이지로 이동합니다. 어떤 해결책이 있다면 제안하십시오. – Areeb

+0

각 테이블 행에 header/footer 태그를 넣지 않을 것입니다. 데이터가 테이블 형식이라면 한 페이지 (x)에 맞는 행 수를 예상 한 다음 x 행마다 태그를 삽입하십시오. 그러나 여러 페이지에 걸쳐있는 단일 셀이있는 경우이 솔루션은 도움이되지 않습니다. –

1
I tried this solution its working. 

<style type="text/css"> 
@media print { 
thead { display: table-header-group; } 
tfoot { display: table-footer-group; } 
} 
@media screen { 
thead { display: block; } 
tfoot { display: block; } 
} 

</style> 


<body> 
<table> 
<thead><tr><td>Your header goes here</td></tr></thead> 
<tbody> 
    <tr><td> 
    Page body in here -- as long as it needs to be 
    </td></tr> 
</tbody> 
<tfoot><tr><td>Your footer goes here</td></tr></tfoot> 
</table> 
</body> 
관련 문제