C# を使用して Web フォームにテーブルを作成しました。ユーザーが Web フォームの印刷ボタンをクリックしたときに、表のみを印刷したい。
divコンテンツのみが印刷されるasp.netにJavascriptを実装しました。これは機能しますが、テーブルには多くの行があるため、多くのページがあります。
新しいページごとにテーブルヘッダーを再度表示したいと思います。どうすればこれを行うことができますか?
私のコード:
asp.net - 印刷ボタン、表
<asp:Button ID="printBtn" runat="server" Text="Print" onClientClick="printdiv('tableDiv')" />
<div id="tableDiv">
<asp:Table ID="resultsTable" runat="server" GridLines="Both">
</asp:Table>
</div>
asp.net - 印刷用のJavaScript
<script type="text/javascript">
function printdiv(printpage) {
var headstr = "Header";
var footstr = "Footer";
var newstr = document.all.item(printpage).innerHTML;
var oldstr = document.body.innerHTML;
document.body.innerHTML = headstr + newstr + footstr;
window.print();
document.body.innerHTML = oldstr;
return false;
}
</script>
コード ビハインドのテーブル メソッド:
protected void resultTable()
{
//database setup codes
...............
try
{
//database query codes
............
if (reader.HasRows)
{
//Set a table width.
resultsTable.Width = Unit.Percentage(60.00);
//Create a new row for adding a table heading.
TableRow tableHeading = new TableRow();
//Create and add the cells that contain the Name column heading text.
TableHeaderCell nameHeading = new TableHeaderCell();
nameHeading.Text = "Name";
nameHeading.HorizontalAlign = HorizontalAlign.Left;
tableHeading.Cells.Add(nameHeading);
TableHeaderCell ageHeading = new TableHeaderCell();
ageHeading.Text = "Age";
ageHeading.HorizontalAlign = HorizontalAlign.Left;
tableHeading.Cells.Add(ageHeading);
resultsTable.Rows.Add(tableHeading);
while (reader.Read())
{
TableRow detailsRow = new TableRow();
TableCell nameCell = new TableCell();
nameCell.Text = reader["name"].ToString();
detailsRow.Cells.Add(nameCell);
TableCell ageCell = new TableCell();
ageCell.Text = reader["age"].ToString();
detailsRow.Cells.Add(ageCell);
resultsTable.Rows.Add(detailsRow);
}
}
reader.Close();
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.ToString());
}
conn.Close();
}