不知道从哪里开始我收到的这个请求。我已将数据从 gridviews 导出到 excel 和 word。将 CSS 样式表传递给两者,从 gridview 创建各种打印。这个让我不知道从哪里开始。最初认为我可以从 gridview 的选定行创建单独的数据表并生成可打印的报告。
基本上这是我需要做的。我有一个显示一些记录的网格视图。用户需要通过复选框选择他们想要打印的任何行并选择打印按钮。一个按钮是按下一个弹出窗口,每次一页显示每个记录的详细信息。
这是网格视图:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
BackColor="White" BorderColor="#999999" BorderStyle="Solid" BorderWidth="1px"
CellPadding="5" CellSpacing="1"
DataSourceID="SqlDataSource1" ForeColor="Black" GridLines="Vertical" AllowSorting="True">
<FooterStyle BackColor="#CCCCCC" />
<Columns>
<asp:TemplateField HeaderText="Process">
<ItemTemplate>
<asp:CheckBox runat="server" ID="chkSelect" />
<asp:HiddenField ID="hdnPkey" Value='<%# Bind("Pkey") %>' runat="server" />
</ItemTemplate>
<HeaderTemplate>
<input id="chkAll" onclick="javascript:SelectAllCheckboxes(this, 'chkSelect');" runat="server" type="checkbox" />
</HeaderTemplate>
<HeaderStyle HorizontalAlign="Center" />
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:BoundField DataField="CreatedBy" HeaderText="Requestor" SortExpression="CreatedBy">
<HeaderStyle HorizontalAlign="left" />
<ItemStyle HorizontalAlign="left" />
</asp:BoundField>
<asp:BoundField DataField="Office" HeaderText="Office" SortExpression="Office">
<HeaderStyle HorizontalAlign="center" />
<ItemStyle HorizontalAlign="center" />
</asp:BoundField>
<asp:BoundField DataField="DeptCode" HeaderText="Department" SortExpression="DeptCode">
<HeaderStyle HorizontalAlign="Left" />
<ItemStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:BoundField DataField="ZoneName" HeaderText="Zone" SortExpression="ZoneName">
<HeaderStyle HorizontalAlign="Left" />
<ItemStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:BoundField DataField="EffectiveDate" HeaderText="Effective Date" DataFormatString = "{0:d}" SortExpression="EffectiveDate">
<HeaderStyle HorizontalAlign="center" />
<ItemStyle HorizontalAlign="center" />
</asp:BoundField>
</Columns>
<PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="Silver" Font-Bold="True" ForeColor="Black" />
<AlternatingRowStyle BackColor="#CCCCCC" />
</asp:GridView>
*这是我用来验证以确保选中复选框的客户端上的 javascript。我无法弄清楚如何捕获隐藏字段中的主键并构建一个字符串,其中每个主键值用逗号分隔。我打算使用该字符串并弹出一个新窗口以检索数据。
function fcnValidateCheckBoxes() {
var isValid = false;
var gridView = document.getElementById("<%=GridView1.ClientID %>");
var MyPkeyString = ""
for (var i = 1; i < gridView.rows.length; i++) {
var inputs = gridView.rows[i].getElementsByTagName('input');
if (inputs != null) {
if (inputs[0].type == "checkbox") {
if (inputs[0].checked) {
isValid = true;
return true;
}
}
}
}
if (isValid == "true") {
***** Not sure what goes here to build the string of primary keyes. **
} else {
alert("You must select at least one checkbox");
return false;
}
}