Выпадающий список с кнопкой «ОК» приведет к отображению текстового поля поиска и кнопки поиска в веб-браузере. - PullRequest
0 голосов
/ 22 июня 2011

Здесь у меня есть DropDownList и кнопка «ОК», что при нажатии она позволяет видеть другие текстовые поля поиска и кнопку поиска. Кроме того, это зависит от того, что я выбрал пункт DropDownList. Скажем, в моем DropDownList у меня есть ProductName и ProductCode. Теперь я выбираю ProductName. Рядом с этим ddlist находится кнопка ok Когда я нажимаю кнопку «ОК», под ней появляются такие элементы управления, как label, textboxName и buttonSearchName. Как мне это сделать?

  <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>
            <asp:Button ID="btnOK" runat="server" onclick="btnOK_Click" Text="OK" />
            <br />
            ProductName<asp:TextBox ID="txtSearchProductname" runat="server"></asp:TextBox>
            <asp:Button ID="btnSearchProductName" runat="server" Text="search" 
                onclick="btnSearchProductName_Click" />
            <br />

Ответы [ 2 ]

0 голосов
/ 22 июня 2011

Чтобы ответить на ваш вопрос, один из способов сделать это (как я уже ответил) добавить панель обновления и установить видимость 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;

    }
}
0 голосов
/ 22 июня 2011

Множество способов сделать это, но поскольку вы только начинаете, проще всего будет поместить элементы управления на панель и изменить видимость в вашем событии "btnOK_Click".

Пример:

<asp:Panel id="searchPanel" runat="server" visible="false">
   your controls here....
</asp:Panel>

Чтобы сделать это видимым, в вашем случае используйте следующий синтаксис.

searchPanel.Visible = True;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...