通过文本框搜索 Gridview c# asp.net

Search Gridview via textbox c# asp.net

我有一个使用存储过程接收信息的 Gridview:

CREATE PROCEDURE sproc_getTableContentStock
@StockID int = 0,
@ClientID int = 0,
@ItemTypeID int = 0,
@ItemName varchar(30) = null,
@DateAddedToSystem varchar(50) = null,
@DateSold varchar(50) = null,
@DatePurchased varchar(50) = null,
@ItemDescription varchar(50) = null,
@RetailPrice money = 0 ,
@Quantity_ smallInt = 0,
@ItemSold varchar(3) = null,
@Designer varchar(50) = null,
@PurchasePrice money = null,
@ItemColour varchar(20) = null,
@ItemSize varchar(5) = null
AS 

SET NOCOUNT ON;

select  StockID ,
ItemName ,
DateSold ,
DatePurchased ,
ItemDescription ,
RetailPrice 
Quantity_ ,
ItemSold ,
Designer ,
PurchasePrice,
ItemColour,
ItemSize,
ItemType, 
RetailPrice,
FirstName

From Stock

inner join ItemTypes on Stock.ItemTypeID = ItemTypes.ItemTypeID

inner join Clients on Stock.ClientID = Clients.ClientID;

一切正常,它正在从我的数据库中提取相关信息,我还设法将正在编辑的信息保存回数据库。

这花了我一些时间来做,因为我对所有这些都是新手。

我现在正在尝试使用搜索文本字段来搜索我的 gridview 的内容,我已经尝试通过查询来执行此操作,但我有点困惑,因为我看过的所有内容似乎都想要重新绑定我的数据。

我只希望能够搜索正在显示的信息,因此我正在考虑通过 JQuery 或 Javascript 执行此操作,事实证明这很困难。

这是我的网格视图:

   <asp:GridView ID="gridStock" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataSourceID="StockData" CssClass="stocktables table table-responsive table-hover"  AutoGenerateEditButton="True" HeaderStyle-CssClass="table table-responsive" ItemStyle-CssClass="table table-responsive table-hover" DataKeyNames="StockID" BackColor="White">
            <Columns>
                <asp:BoundField DataField="StockID" HeaderText="StockID" SortExpression="StockID" HeaderStyle-CssClass="hidden" ItemStyle-CssClass="hidden" >
                </asp:BoundField>
                <asp:BoundField DataField="ItemName" HeaderText="ItemName" SortExpression="ItemName" HeaderStyle-CssClass="table table-responsive" ItemStyle-CssClass="table table-responsive table-hover">
                </asp:BoundField>
                <asp:BoundField DataField="ItemDescription" HeaderText="ItemDescription" SortExpression="ItemDescription" HeaderStyle-CssClass="table table-responsive" ItemStyle-CssClass="table table-responsive table-hover">
                </asp:BoundField>
                 <asp:BoundField DataField="Designer" HeaderText="Designer" SortExpression="Designer" HeaderStyle-CssClass="table table-responsive" ItemStyle-CssClass="table table-responsive table-hover">
                </asp:BoundField>
                <asp:BoundField DataField="Quantity_" HeaderText="Quantity" SortExpression="Quantity_" HeaderStyle-CssClass="table table-responsive" ItemStyle-CssClass="table table-responsive table-hover">
                </asp:BoundField>
                <asp:BoundField DataField="ItemSize" HeaderText="ItemSize" SortExpression="ItemSize"  HeaderStyle-CssClass="table table-responsive" ItemStyle-CssClass="table table-responsive table-hover"/>
                <asp:BoundField DataField="ItemType" HeaderText="ItemType" SortExpression="ItemType"  HeaderStyle-CssClass="table table-responsive" ItemStyle-CssClass="table table-responsive table-hover" />
                <asp:BoundField DataField="RetailPrice" HeaderText="RetailPrice" SortExpression="RetailPrice"  HeaderStyle-CssClass="table table-responsive" ItemStyle-CssClass="table table-responsive table-hover"/>
                <asp:BoundField DataField="ItemColour" HeaderText="ItemColour" SortExpression="ItemColour" HeaderStyle-CssClass="table table-responsive" ItemStyle-CssClass="table table-responsive table-hover"></asp:BoundField>
                <asp:BoundField DataField="DateSold" HeaderText="DateSold" SortExpression="DateSold" HeaderStyle-CssClass="table table-responsive" ItemStyle-CssClass="table table-responsive table-hover">
                </asp:BoundField>
                <asp:BoundField DataField="DatePurchased" HeaderText="Date Purchased" SortExpression="DatePurchased" HeaderStyle-CssClass="table table-responsive" ItemStyle-CssClass="table table-responsive table-hover">
                </asp:BoundField>
                <asp:BoundField DataField="ItemSold" HeaderText="Item Sold" SortExpression="ItemSold" HeaderStyle-CssClass="table table-responsive" ItemStyle-CssClass="table table-responsive table-hover">
                </asp:BoundField>
                <asp:BoundField DataField="PurchasePrice" HeaderText="Purchased Price" SortExpression="PurchasePrice" HeaderStyle-CssClass="table table-responsive" ItemStyle-CssClass="table table-responsive table-hover">
                </asp:BoundField>
                <asp:BoundField DataField="FirstName" HeaderText="Client Name" SortExpression="FirstName" ReadOnly="True" HeaderStyle-CssClass="table table-responsive" ItemStyle-CssClass="table table-responsive table-hover"/>
            </Columns>
        </asp:GridView>
        <asp:SqlDataSource ID="StockData" runat="server" ConnectionString="<%$ ConnectionStrings:LabelsDressShopConnection %>" SelectCommand="sproc_getTableContentStock"
            SelectCommandType="StoredProcedure" UpdateCommand="UPDATE [Stock] set [ItemName]=@ItemName, [ItemDescription]=@ItemDescription, [ItemSize]=@ItemSize, [Designer]=@Designer, [DatePurchased]=@DatePurchased, [DateSold]=@DateSold, [RetailPrice]=@RetailPrice, [ItemColour]=@ItemColour Where [StockID]=@StockID"></asp:SqlDataSource>

如果有人能帮助我,我将不胜感激!提前致谢!

我本来想在gridview中搜索,我没能做到,但我愿意接受我所做的。

Default.aspx.cs 我创建了我的连接字符串...我通过单击 "Server explorer" 选项卡和属性来完成此操作,它在那里标记了您的连接字符串是什么...

SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Sophia\Desktop\fyp-dressshop\FYP-LabelsDressShopLeicesterSystem\LabelsShopApplication\App_Data\LabelsDressShop.mdf;Integrated Security=True;Connect Timeout=30");

然后我在我的文本字段旁边的按钮的单击事件上写了以下内容。

String str = "select * from Stock where (ItemName like '%' + @search + '%')";// saving my query as a string variable
SqlCommand xp = new SqlCommand(str, conn);
xp.Parameters.Add("@search", SqlDbType.VarChar).Value = txtSearch.Text;
//opening my connection 
con.Open();

//Excuting my command which i saved as a string 
xp.ExecuteNonQuery();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = xp;

DataSet ds = new DataSet();
//Has to be the same name a in the DB
da.Fill(ds, "ItemName");

GridView1.DataSource = ds;
GridView1.DataBind();


conn.Close();

我希望这对和我处在同一条船上的人有所帮助。