2011-06-22 43 views
0

在這裏我有一個DropDownList和按鈕確定,單擊時,它將啓用其他搜索文本框和搜索按鈕的可見性。另外,這取決於我選擇DropDownList項目。說,在我的DropDownList中,我有ProductName和ProductCode.I現在選擇ProductName旁邊的這個ddlist是按鈕確定。當我點擊確定按鈕時,控件如標籤,textboxName和buttonSearchName將出現在它的下面。 我該如何做到這一點?與確定按鈕的下拉列表將觸發搜索文本框和搜索按鈕,以在Web瀏覽器中可見

<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 /> 

回答

0

要回答你的問題,要做到這一點是(因爲我之前回答)添加一個更新面板和設置能見度爲False的一種方式,但你還需要一個ScriptManager,如果您有其他控件相同的頁面(如FileUpload控件)無法正常工作,因爲存在ScriptManager。

您也可以使用相同的文本框來搜索所有字段,方法是實施一種方法來檢測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

是的,它應該是這樣的。只要它工作正常,就可以做到這一點。感謝,朋友。如何投票給你作爲這個答案?你當之無愧。 –

+0

你會在我的答案旁邊的^ 0下找到一個空白的選中標記,如果你將鼠標懸停在它旁邊,它會說(接受本答案) – Ahmad

0

很多方法可以做到這一點,但因爲你剛開始做的是把你的控件在面板中更改您的「btnOK_Click」活動的知名度最簡單的事情。

例子:

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

爲了使這可見,在事件中使用下面的語法。

searchPanel.Visible = True; 
+0

不錯!但是當我選擇其他項目如ProductCode時如何使用ddllist?應該panelProductName消失嗎?或者在同一個面板中(我的面板是panel1),但只觸發顯示與productCode關聯的控件? –

+0

因此,下拉列表中的每個選項都會有一組不同的控件,對吧?使用傳統ASP.NET回發最簡單的方法是每個/選項創建1個面板。然後,您可以根據下拉列表中的選定項目指定要顯示/隱藏的面板。您可能還想創建一個可以調用的幫助器功能,該功能將隱藏所有面板,並只顯示您想要看到的面板。你會把它稱爲「ShowPanel(productCodePanel)」,它會隱藏所有面板並只顯示「productCodePanel」。 – Zachary