0

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();
    }
4

1 に答える 1

0

メソッドを使用して CSS スタイルシートを作成しました。

thead { display:table-header-group }

ただし、この方法はブラウザ IE および Firefox でのみ機能します。

于 2012-08-30T03:13:37.850 に答える