0

我已经使用 C# 在 web 表单中创建了一个表。当用户单击网络表单中的打印按钮时,我只想打印表格。

我已经在 asp.net 中实现了 Javascript,其中只打印了 div 内容。但是,这行得通,因为表中有很多行,所以有很多页。

我希望在每个新页面中再次显示表格标题。我该怎么做呢?

我的代码:
在 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 回答