首页 > 解决方案 > 是否可以在单击按钮时为 GridView 中的项目生成水晶报表?

问题描述

一个小背景故事:我有一个包含员工列表的 GridView。在 GridView 上方,我有一个搜索文本框和用作 GridView 控件的链接按钮:添加、编辑、删除和生成报告。

现在回到主要问题:是否可以在我的 GridView 中选择一个项目,然后单击生成报告以生成包含该选定项目的所有行的报告?如果是这样,我将如何完成这项任务?有没有更有效的方法来做到这一点?谢谢!

这是我的 GridView 的代码:

<div style="margin-left:5px; margin-bottom:50px">
                        <div style="margin-bottom:5px; margin-top:5px">
                            <asp:TextBox ID="txtSearchEquip" runat="server" BorderColor="#666666" style="margin-bottom: 10px; text-align: left;" Width="317px" ForeColor="Black" Height="30px" ></asp:TextBox>  
                            <asp:Button ID="btnSearchEquip" runat="server" Text="Search" Height="30px"/>
                            <asp:Button ID="btnClearEquip" runat="server" Text="Clear" Height="30px"/>
                        </div>
                <asp:GridView ID="gvPersonnelEquipment" CssClass="EU_DataTable" runat="server" AutoGenerateColumns="False" DataKeyNames="SequipID" DataSourceID="SqlDataSource1" AllowPaging="True" AllowSorting="True" PageSize="6" OnRowDataBound="gvEquipment_RowDataBound" OnRowCommand="gvPersonnelEquipment_RowCommand">
                    <Columns>
                        <asp:CommandField ShowSelectButton="True" />
                        <asp:BoundField DataField="SequipID" HeaderText="ID" InsertVisible="False" ReadOnly="True" SortExpression="SequipID" />
                        <asp:BoundField DataField="SempID" HeaderText="Employee ID" SortExpression="SempID" />
                        <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
                        <asp:BoundField DataField="Equipment" HeaderText="Equipment" SortExpression="Equipment" />
                        <asp:BoundField DataField="MakeModelNo" HeaderText="Model Number" SortExpression="MakeModelNo" />
                        <asp:BoundField DataField="PropertyTagNo" HeaderText="Property Tag Number" SortExpression="PropertyTagNo" />
                        <asp:BoundField DataField="SerialNumber" HeaderText="Serial Number" SortExpression="SerialNumber" />
                        <asp:BoundField DataField="Cost" HeaderText="Cost" SortExpression="Cost" />
                        <asp:BoundField DataField="EquipmentStatus" HeaderText="Equipment Status" SortExpression="EquipmentStatus" />
                        <asp:BoundField DataField="Remarks" HeaderText="Remarks" SortExpression="Remarks" />
                        <asp:BoundField DataField="IssuedBy" HeaderText="Issued By" SortExpression="IssuedBy" />
                        <asp:BoundField DataField="DateIssued" HeaderText="Date Issued" SortExpression="DateIssued" />
                        <asp:BoundField DataField="RetDate" HeaderText="Return Date" SortExpression="RetDate" />
                        <asp:BoundField DataField="ReceivedBy" HeaderText="Received By" SortExpression="ReceivedBy" />
                        <%--<asp:BoundField DataField="Status" HeaderText="Status" SortExpression="Status" />--%>
                    </Columns>
                    <SelectedRowStyle BackColor="#54a1e5" Font-Bold="True" ForeColor="#CCFF99" />
                </asp:GridView>
                </div>

                <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:SecurityDBConnectionString2 %>" SelectCommand="SELECT * FROM [SecurityPersonnelEquipment] WHERE ([Status] = @Status)" FilterExpression="[Name] LIKE '{0}%' OR [Equipment] LIKE '{1}%' OR [EquipmentStatus] LIKE '{2}%' ">
                    <SelectParameters>
                        <asp:Parameter DefaultValue="1" Name="Status" Type="Int32" />
                    </SelectParameters>
                    <FilterParameters>
                        <asp:ControlParameter ControlID="txtSearchEquip" Name="Name" PropertyName="Text" Type="String" ConvertEmptyStringToNull="false"/>
                        <asp:ControlParameter ControlID="txtSearchEquip" Name="Equipment" PropertyName="Text" Type="String" ConvertEmptyStringToNull="false"/>
                        <asp:ControlParameter ControlID="txtSearchEquip" Name="EquipmentStatus" PropertyName="Text" Type="String" ConvertEmptyStringToNull="false"/>
                    </FilterParameters>
                </asp:SqlDataSource>
                <!-- End of Personnel Equipment GridView -->

            </div>

标签: c#asp.netvb.netgridview

解决方案


推荐阅读