C# 如何搜索GridView?
我有一个文本框和搜索按钮。目前,“搜索”按钮不起任何作用。我不知道如何在GridView中搜索。我已经研究了几个小时,但这些示例不起作用,因为我使用了存储过程(一个是一个select语句,适用于这个GridView,同时我看到我需要一些其他select来获得搜索结果……但我不知道如何在这里合并两个select)。我如何才能将搜索添加到该文件C# 如何搜索GridView?,c#,asp.net,gridview,search-box,C#,Asp.net,Gridview,Search Box,我有一个文本框和搜索按钮。目前,“搜索”按钮不起任何作用。我不知道如何在GridView中搜索。我已经研究了几个小时,但这些示例不起作用,因为我使用了存储过程(一个是一个select语句,适用于这个GridView,同时我看到我需要一些其他select来获得搜索结果……但我不知道如何在这里合并两个select)。我如何才能将搜索添加到该文件 <%@ Page Title="" Language="C#" MasterPageFile="~/admin/admin.master" AutoE
<%@ Page Title="" Language="C#" MasterPageFile="~/admin/admin.master" AutoEventWireup="true" CodeFile="viewregistrantpaper.aspx.cs" Inherits="viewreg" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<h1>View Registrant</h1>
<asp:TextBox ID="TxtSearch" runat="server" CssClass="formtextbox"></asp:TextBox>
<asp:Button ID="BtnSearch" runat="server" onclick="BtnSearch_Click" Text="Search" CssClass="formbutton" />
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
AllowSorting="True" AutoGenerateColumns="False"
DataSourceID="SqlDataSourceViewRegistrant"
CssClass="mGrid"
PagerStyle-CssClass="pgr"
AlternatingRowStyle-CssClass="alt" >
<AlternatingRowStyle CssClass="alt"></AlternatingRowStyle>
<Columns>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
<asp:BoundField DataField="LocalNumberId" HeaderText="Local"
SortExpression="LocalNumberId" />
<asp:BoundField DataField="LocalUnionEmail" HeaderText="Local Email"
SortExpression="LocalUnionEmail" />
<asp:BoundField DataField="DistrictId" HeaderText="District"
SortExpression="DistrictId" />
<asp:BoundField DataField="CompletedByFirstName" HeaderText="Completed By First Name"
SortExpression="CompletedByFirstName" />
<asp:BoundField DataField="CompletedByLastName" HeaderText="Completed By Last Name"
SortExpression="CompletedByLastName" />
<asp:BoundField DataField="CompletedByPhone" HeaderText="Completed By Phone"
SortExpression="CompletedByPhone" />
<asp:BoundField DataField="FirstName" HeaderText="First Name"
SortExpression="FirstName" />
<asp:BoundField DataField="LastName" HeaderText="Last Name"
SortExpression="LastName" />
<asp:BoundField DataField="Position" HeaderText="Position"
SortExpression="Position" />
<asp:BoundField DataField="Email" HeaderText="Email"
SortExpression="Email" />
<asp:BoundField DataField="ShirtSize" HeaderText="Shirt Size"
SortExpression="ShirtSize" />
<asp:BoundField DataField="Comments" HeaderText="Comments"
SortExpression="Comments" />
</Columns>
<PagerStyle CssClass="pgr"></PagerStyle>
</asp:GridView>
<div style=" width:100%; overflow: hidden;">
<asp:SqlDataSource ID="SqlDataSourceViewRegistrant" runat="server"
ConnectionString="<%$ ConnectionStrings:Events2 %>"
DeleteCommand="spDelRegistrant" DeleteCommandType="StoredProcedure"
InsertCommand="spInsRegistrantPaper" InsertCommandType="StoredProcedure"
SelectCommand="spGetRegistrantPaper" SelectCommandType="StoredProcedure"
UpdateCommand="spUpdateRegistrantPaper"
UpdateCommandType="StoredProcedure">
<DeleteParameters>
<asp:Parameter Name="RegistrantId" Type="Int32" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="EventId" Type="Int32" />
<asp:Parameter Name="LocalNumber" Type="Int32" />
<asp:Parameter Name="LocalUnionEmail" Type="String" />
<asp:Parameter Name="DistrictId" Type="Int32" />
<asp:Parameter Name="CompletedByFirstName" Type="String" />
<asp:Parameter Name="CompletedByLastName" Type="String" />
<asp:Parameter Name="CompletedByPhone" Type="String" />
<asp:Parameter Name="FirstName" Type="String" />
<asp:Parameter Name="LastName" Type="String" />
<asp:Parameter Name="Position" Type="String" />
<asp:Parameter Name="Email" Type="String" />
<asp:Parameter Name="ShirtSize" Type="String" />
<asp:Parameter Name="Comments" Type="String" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="RegistrantId" Type="Int32" />
<asp:Parameter Name="LocalNumber" Type="Int32" />
<asp:Parameter Name="LocalUnionEmail" Type="String" />
<asp:Parameter Name="DistrictId" Type="Int32" />
<asp:Parameter Name="CompletedByFirstName" Type="String" />
<asp:Parameter Name="CompletedByLastName" Type="String" />
<asp:Parameter Name="CompletedByPhone" Type="String" />
<asp:Parameter Name="FirstName" Type="String" />
<asp:Parameter Name="LastName" Type="String" />
<asp:Parameter Name="Position" Type="String" />
<asp:Parameter Name="Email" Type="String" />
<asp:Parameter Name="ShirtSize" Type="String" />
<asp:Parameter Name="Comments" Type="String" />
</UpdateParameters>
</asp:SqlDataSource>
</div>
</p>
</asp:Content>
您必须修改存储过程
spGetRegintPaper
,才能将过滤后的记录发送到web应用程序。您可以使用如下的Where
子句对其进行修改(例如:-
其中,@Name
将是SP中的输入参数
接下来,向SQLDataSource
标记中添加一个Select参数,如下所示:-
<SelectParameters>
<asp:ControlParameter ControlID="TxtSearch" Name="Name" PropertyName="Text"
Type="String" DefaultValue="%%" />
</SelectParameters>
那么您的SPSPGetRegintPaper
是否需要任何参数?您是否在SP中实现了过滤器?目前没有,它只是从表中选择*谢谢。我今天会试试这个,然后再回复你。我刚刚对我的问题进行了编辑。我更改了存储过程,并在ASP.Net页面中添加了几行。现在GridView从页面上完全消失了。有没有办法让select语句获取GridView的所有数据,然后让另一个select语句用于此搜索,从而缩小GridView中的数据范围?我想问题是我可能需要两个GridView语句。@RockOn-嘿,你的SP看起来不错。是的,您无法在初始页面加载时看到数据,因为文本框中没有任何内容。因此,我们只添加了DefaultValue=“%%”
,它将显示页面加载上的所有记录。我知道你这么做了,但我不知道你为什么要加上“删除它”。
USE [Events2]
GO
/****** Object: StoredProcedure [dbo].[spGetRegistrantPaper] Script Date: 11/25/2015 11:10:14 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[spGetRegistrantPaper]
-- Add the parameters for the stored procedure here
@FirstName nVarChar (255)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT LocalNumberId,
LocalUnionEmail,
DistrictId,
CompletedByFirstName,
CompletedByLastName,
CompletedByPhone,
FirstName,
LastName,
Position,
Email,
ShirtSize,
Comments
FROM Registrant
WHERE FirstName LIKE '%' + @FirstName + '%'
END
SELECT * FROM RegistrantPaper WHERE FirstName LIKE '%' + @Name + '%'
<SelectParameters>
<asp:ControlParameter ControlID="TxtSearch" Name="Name" PropertyName="Text"
Type="String" DefaultValue="%%" />
</SelectParameters>