我正在使用ASP.net/C#构建一个小型网站,我想知道如何使用文本框和下拉列表实现简单的搜索功能。
数据源是产品表,在文本框中输入产品名称,下拉列表中是类别。 (我已设法使用可用类别填充下拉列表)
必须遵循以下条件:
如果文本框和下拉列表均为空白,则必须列出所有产品;
如果选择了某个类别,则必须列出该类别的所有产品;
如果仅填写文字,则会显示所有匹配的产品;
如果可能的话,一些代码片段将不胜感激。
感谢。
答案 0 :(得分:1)
我将假设您使用标准DataSet,并且您正在从Products表中加载所有数据,您应该查看以下链接之一:
ADO.NET: Filter Data
Filtering and Sorting in Datasets
Web Forms DataGrid and DataSet Programming
答案 1 :(得分:0)
您熟悉SQL吗?如果是这样,您所要做的就是为每个条件创建一个不同的查询,或者一个查询带有参数,该参数将指示要添加到select语句的条件,例如:
如果文本框和下拉列表都是 空白所有产品必须列出;
SELECT * FROM Products
如果选择所有产品的类别 必须列出该类别;
SELECT * FROM Products WHERE Category = @Category
如果只填写文字,则为所有产品 显示匹配
SELECT * FROM Products WHERE ProductName = @ProductName
这是最简单的方法,@ Category和@ProductName是包含文本框和下拉列表值的参数。 您仍然需要添加代码来决定何时执行每个查询并使用结果填充控件...假设下拉列表中的第一项不是实际类别,但可能是某些文本作为“选择类别” ,这是一个如何处理第一个条件的例子:
If (string.IsNullOrEmpty(txtProductName.Text && ddlCategory.SelectedIndex == 0)
{
//execute query#1
GridViewSearchResults.DataSource = DataSet1; //This dataset is populated with data from the first query "select * from products"
GridViewSearchResults.DataBind();
}
如果上述内容没有意义,我建议您继续阅读有关此主题的更多内容。上面的示例不是编写生产应用程序的理想方式,它非常简单,只是为了让您了解如何做。