[英]How to search data in asp.net web application
我的asp.net網絡應用程序需要幫助。 我有一個頁面,我用datagrid顯示數據(所有用戶)。 現在,當我只有少數用戶時,沒有問題。但是當一個數據庫將填充100多個用戶時,很難找到指定的用戶。
我需要創建一個搜索引擎(按名稱搜索)。 我已經找到了一些教程,但它們都基於創建新的數據網格並創建新的SQL數據源。
我需要確保當管理員在數據中鍵入查找成員時,它會在同一個數據網格中顯示搜索到的用戶。 我已經有了刪除和編輯數據的代碼,有人可以幫我創建代碼或至少指導我,如何制作搜索引擎? 謝謝
這是我的代碼:
<asp:CommandField CancelText="Cancel" DeleteText="Delete" EditText="Edit" ShowDeleteButton="true" SelectText="Select" UpdateText="Update" ShowEditButton="True" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" DeleteCommand="DELETE FROM [Users] WHERE [Id] = @Id" InsertCommand="INSERT INTO [Users] ([Id], [Name], [LastName],) VALUES (@Id, @Name, @LastName,)" SelectCommand="SELECT * FROM [Users]" UpdateCommand="UPDATE [Users] SET [Name] = @Name, [LastName] = @LastName, WHERE [Id] = @Id">
<DeleteParameters>
<asp:Parameter Name="Id" Type="Int32" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="Id" Type="Int32" />
<asp:Parameter Name="Name" Type="String" />
<asp:Parameter Name="LastName" Type="String" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="Name" Type="String" />
<asp:Parameter Name="LastName" Type="String" />
</UpdateParameters>
</asp:SqlDataSource>
編輯:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="Id" DataSourceID="SqlDataSource">
<Columns>
<asp:BoundField DataField="Id" HeaderText="Id" ReadOnly="true" SortExpression="Id" Visible="false" />
<asp:BoundField DataField="name" HeaderText="Name" SortExpression="name" >
<ItemStyle Width="150px" />
</asp:BoundField>
<asp:BoundField DataField="lastName" HeaderText="LastName" SortExpression="lastName" >
<ControlStyle Width="100px" />
<ItemStyle Width="150px" />
</asp:BoundField>
據我所知,您需要按名稱篩選網格結果。 首先更改您的Select查詢以添加過濾器。
SELECT * FROM [Users] where ((not @Name is null and [Name] like '%' + @Name + '%'))
然后將一個Control參數添加到您的SqlDatasource:
<SelectParameters>
<asp:ControlParameter ControlID="TextboxName" Name="Name" PropertyName="Text" ConvertEmptyStringToNull="False" />
</SelectParameters>
然后將此代碼添加到搜索按鈕后面:
protected void Button1_Click(object sender, EventArgs e)
{
GridView1.DataBind();
}
希望它能幫到你。
使用過濾表達式
將您的SqlDatasource修改為
<asp:SqlDataSource ID="SqlDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" DeleteCommand="DELETE FROM [Users] WHERE [Id] = @Id" InsertCommand="INSERT INTO [Users] ([Id], [Name], [LastName],) VALUES (@Id, @Name, @LastName,)" SelectCommand="SELECT * FROM [Users]" FilterExpression="Name LIKE '%{0}%' UpdateCommand="UPDATE [Users] SET [Name] = @Name, [LastName] = @LastName, WHERE [Id] = @Id">
<DeleteParameters>
<asp:Parameter Name="Id" Type="Int32" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="Id" Type="Int32" />
<asp:Parameter Name="Name" Type="String" />
<asp:Parameter Name="LastName" Type="String" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="Name" Type="String" />
<asp:Parameter Name="LastName" Type="String" />
</UpdateParameters>
<FilterParameters>
<asp:ControlParameter ControlID="txtSearch" PropertyName="Text" DefaultValue="%" />
</FilterParameters>
</asp:SqlDataSource>
加
FilterExpression="Name LIKE '%{0}%'
和
<FilterParameters>
<asp:ControlParameter ControlID="txtSearch" PropertyName="Text" DefaultValue="%" />
</FilterParameters>
請將我用於ControlID的txtSearch替換為用於搜索的文本框的ID。
使用backgrid
為避免多個數據源,它執行客戶端過濾並快速變化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.