Чтобы ответить на ваш вопрос, один из способов сделать это (как я уже ответил) добавить панель обновления и установить видимость False, но тогда вам также потребуется ScriptManager и, если у вас есть другие элементы управления на той же странице (например, элемент управления FileUpload), который не будет работать должным образом при наличии ScriptManager.
В качестве альтернативы вы можете использовать один и тот же TextBox для поиска по всем полям, реализовав метод, который определяет значение, выбранное в вашем DropDownList, и на основе этого значения алгоритм поиска изменяется соответствующим образом.
Поэтому я просто переименовал ваш txtSearchProduct
в txtSearch
и добавил универсальный метод для поиска по всем критериям с именем btnSearch_Click
<asp:DropDownList ID="DropDownList1" runat="server">
<asp:ListItem>ProductName</asp:ListItem>
<asp:ListItem>ProductCode</asp:ListItem>
<asp:ListItem>Category</asp:ListItem>
<asp:ListItem>SellingPrice</asp:ListItem>
<asp:ListItem>Quantity</asp:ListItem>
<asp:ListItem>BrandName</asp:ListItem>
<asp:ListItem>ReOrderQty</asp:ListItem>
<asp:ListItem>ReOrderLevel</asp:ListItem>
<asp:ListItem>Ordered</asp:ListItem>
<asp:ListItem>Allocated</asp:ListItem>
<asp:ListItem>FreeQty</asp:ListItem>
</asp:DropDownList>
<br />
Search: <asp:TextBox ID="txtSearch" runat="server">
</asp:TextBox>
<asp:Button ID="btnSearch" runat="server" Text="search"
onclick="btnSearch_Click" />
<br />
, и вот пример того, чтоbtnSearch_Click
выглядит как
protected void btnSearch_Click(object sender, EventArgs e)
{
string searchText = this.txtSearch.Text;
switch (this.DropDownList1.SelectedValue.ToString) {
case "ProductName":
string sql = "select * from products where ProductName like '%" + searchText + "%'";
// the rest of your code goes here
break;
case "ProductCode":
string sql = "select * from products where ProductCode like '%" + searchText + "%'";
// populate some other control with your productcode search here
break;
}
}