2010年10月8日 星期五

開發列印功能的參考文章

列印網頁控制項的顯示/隱藏


    <style type="text/css" media="print">
        .print_disable
        {
            visibility: hidden;
        }
        p
        {
            color: #ffffff;
            background-color: #000000;
        }
    </style>
    <style type="text/css" media="screen">
        p
        {
            color: #ccffff;
            background-color: background;
        }
    </style>
</head>
<body>
    <input id="Button1" class="print_disable" type="button" value="列印" onclick="fnPrint()" />
    <p>
        使用ASP.NET 來寫網頁時, <br />
通常我們會用 Visible 這個屬性來控制是否要在網頁上顯示 <br />
那這個 Visible 它的做法是在呈現網頁時,把整段語法都拿掉 <br />
也就是說當我們在看網頁原始碼時,這個控制項是不會出現的</p>




自動列印與分頁列印

怎麼樣讓網頁於列印時自動分成適當的頁數呢?
其實有個簡單的指令, 馬上能讓你達成心願。


這個指令是:

<P style='page-break-after:always'></P>


Javascript呼叫IE列印以及預覽列印的方法


Javascript部分:

//列印div包起來的部分並且列印完畢後自動關閉列印網頁

function printScreen(block){

var value = block.innerHTML;

var printPage = window.open("","printPage","");

printPage.document.open();

printPage.document.write("<HTML><head></head><BODY onload='window.print();window.close()'>");

printPage.document.write("<PRE>");

printPage.document.write(value);

printPage.document.write("</PRE>");

printPage.document.close("</BODY></HTML>");

}

Javascript部分:
//預覽div包起來的部分並且列印完畢後自動關閉列印網頁
function previewScreen(block){
var value = block.innerHTML;
var printPage = window.open("","printPage","");
printPage.document.open();
printPage.document.write("<OBJECT classid='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2' height=0 id=wc name=wc width=0></OBJECT>");
printPage.document.write("<HTML><head></head><BODY onload='javascript:wc.execwb(7,1);window.close()'>");
printPage.document.write("<PRE>");
printPage.document.write(value);
printPage.document.write("</PRE>");
printPage.document.close("</BODY></HTML>");
}

for FireFox : insertRow與insertCell須傳遞參數,指定插入位置


<html>
<head><title>CPM</title></head>
<SCRIPT language = "JavaScript">
function addRow(n){
var Tr = document.getElementById("inputJob").insertRow(n);
var Td = Tr.insertCell(n);
Td.innerHTML = "<input type=text>";
}
</SCRIPT>
<body>
<a href = "javascript:addRow(-1);">新增</a>
<form name = "formJob">
<table id = "inputJob" border = "0">
</table>
</form>
</body>
</html>

for firefox 需參考上面連結修正程式碼
function addRow()
{
var root = document.getElementById("tbody")
var allRows = root.getElementsByTagName('tr');
var allCells = allRows[0].getElementsByTagName('td');
var newRow = root.insertRow();
var newCell0 = newRow.insertCell();
var newCell1 = newRow.insertCell();
var newCell2 = newRow.insertCell();
var newCell3 = newRow.insertCell();
newCell0.innerHTML = allCells[0].innerHTML;
newCell1.innerHTML = allCells[1].innerHTML;
newCell2.innerHTML = allCells[2].innerHTML;
newCell3.innerHTML = allCells[3].innerHTML;


}
function removeRow(r)
{
var root = r.parentNode;
root.deleteRow(r);
}
function addRow()
{
var root = document.getElementById("tbody");
var allRows = root.getElementsByTagName('tr');
var cRow = allRows[0].cloneNode(true)
root.appendChild(cRow);
}
function removeRow(r)
{
var root = r.parentNode;
var allRows = root.getElementsByTagName('tr')
if(allRows.length>1)
root.removeChild(r);
else
alert("only one row left, you not need to remove it.");
}

沒有留言: