DataList 加入列印斷頁符號
一般來說Datalist Control並沒有可分頁的選項, 特別是在要印出來的時候如果沒有很好的分頁很容易造成美觀上的問題. 透過CSS的page-break-after (or before) 可以讓browser列印輸出讀到該行時斷頁.
假設我的Datalist 有兩個columns :
我要在每列印六個row後進行分頁, 在DataList1_ItemDataBound中加入:
假設我的Datalist 有兩個columns :
<asp:datalist repeatdirection="Horizontal" cellpadding="4" id="DataList1"
repeatcolumns="2" runat="server"></asp:datalist>
我要在每列印六個row後進行分頁, 在DataList1_ItemDataBound中加入:
If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem ThenOK, 到這邊基本上分頁斷行就加入完成了, 但是我列印的時候只想列印DataList的部分, 所以我又加了一段javascript程式碼:
Dim sp As New Literal
sp.Text = "</td><tr><td colspan='2'><div style='page-break-after:always'></div></td></tr><tr><td colspan='2'>"
If e.Item.ItemIndex = 11 Or e.Item.ItemIndex = 23 Or e.Item.ItemIndex = 35 Then
e.Item.Controls.Add(sp)
End If
End If
<script language="javascript">加個列印的Button把Datalist的clientID丟入就可以了!
function PrintDataList(StrID) {
var prtContent = document.getElementById(StrID);
var WinPrint = window.open('', '', 'left=0,top=0,width=800,height=400,toolbar=no,scrollbars=auto,status=0');
WinPrint.document.write(prtContent.innerHTML);
WinPrint.document.close();
WinPrint.focus();
WinPrint.print();
WinPrint.close();
}
</script>
0 comments: