2013-12-16 8 views
0

在我開始之前,我想說一件事,這與數據庫沒有關聯。如何使用下拉列表選擇搜索和顯示面板?

我正在開發一個使用asp.net的網站。這裏因爲一些混亂而陷入困境。
在我的一頁中,有多個面板可用。每個面板都有一個標籤(國家名稱)和兩個文本框。在頁面頂部,搜索欄(下拉列表)提供了州名稱。

現在這裏的情況是,如果用戶從下拉菜單中選擇一個狀態,那麼應該搜索具有相應標籤(州名)的特定面板。

對於實例

上午有國家A,B和C是有我的下拉列表(搜索欄),並在同一時間上午還具有三塊板,如面板X(狀態A作爲標籤名稱和兩個文本框),面板y(狀態B作爲標籤名稱和兩個文本框)以及面板z(狀態C作爲標籤名稱和兩個文本框)在Default.aspx頁面中。

現在我需要,如果用戶從下拉列表中選擇A國,則特定面板(該標籤具有國家A)應與所有控件顯示

「沒有與數據庫連接」希望不會讓人困惑。任何幫助對我來說都會更有幫助。
在此先感謝。

+0

護理向我們展示你嘗試過什麼? – jomsk1e

+0

從你想要顯示隱藏的'C#'或'java-script'? –

+0

@Shekhar在c#中。 – gkrishy

回答

0

假設LABEL1是Panel1and LABEL2是是Panel2

protected void Dropdownlist1_Changed(object sender, EventArgs, e) 
{ 
    string labelTxt= Dropdownlist1.SelectedValue; 
    if(labelTxt == label1.Text) 
    { 
     Panel1.Visible = true; 
     Panel2.Visible = false; 
    } 
    else if(labelTxt == label2.Text) 
    { 
     Panel1.Visible = false; 
     Panel2.Visible = true; 
    } 

} 
0

這很麻煩,但您可以根據選定的下拉列表更改事件來顯示/隱藏控件。這裏有一個例子,你需要修改以適應你的場景。

protected void Dropdownlist1_Changed(object sender, EventArgs, e) 
{ 
    string item = Dropdownlist1.SelectedValue; 
    if(item == "State 1") 
    { 
     Panel1.Visible = false; 
     Panel2.Visible = true; 
    } 
} 
+0

感謝您的迴應,但事情是,在這裏我需要檢查下拉列表項目與我的標籤控制在面板。請再次通過我的例子。如果我對我的問題感到困惑,請告訴我。 – gkrishy

0

這很容易,但你需要更合乎邏輯的意思是你的面板和下降淹沒列表之間沒有關係。

<asp:DropDownList runat="server" ID="ddlState" AutoPostBack="True" 
    OnSelectedIndexChanged="ddlState_SelectedIndexChanged" > 
    <asp:ListItem Text="StateA" Value="Panel1" /> 
    <asp:ListItem Text="StateB" Value="Panel2" /> 
</asp:DropDownList> 

而在C#

protected void ddlState_SelectedIndexChanged(object sender, EventArgs, e) 
{ 
    //hide all the panels 
    for(int i=0;i<ddlState.Items.Count;i++) 
    { 
     var control= ddlState.Items[i].Value; 
     if(this.FindControl(control)!=null) 
      this.FindControl(control).Visible=false; 
    } 

    //show the selected dropdown list panel 
    string item = Dropdownlist1.SelectedValue; 
    if(this.FindControl(item)!=null) 
     this.FindControl(item).Visible =true; 

} 
+0

你的答案是完美的,我有一個想法。但是在這裏它說一些錯誤,「對象引用未設置爲對象的實例」。 – gkrishy

+0

你在哪一行出現這個錯誤? –

+0

this.FindControl(control).Visible = false;在這行@Shekhar – gkrishy

0

HTML

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
    <asp:Panel ID="pnlDropDown" runat="server"> 
     <table style="width:100%"> 
      <tr> 
       <td style="text-align:right;width:30%"> 
        <asp:Label ID="lblState" runat="server" Text="Select State"></asp:Label> 
       </td> 
       <td> 
        <asp:DropDownList ID="ddlState" runat="server" AutoPostBack="true" AppendDataBoundItems="true" OnSelectedIndexChanged="ddlState_SelectedIndexChanged"> 
        <asp:ListItem></asp:ListItem> 
        <asp:ListItem Value="pnlA">State A</asp:ListItem> 
        <asp:ListItem Value="pnlB">State B</asp:ListItem> 
        <asp:ListItem Value="pnlC">State C</asp:ListItem> 
       </asp:DropDownList> 
       </td> 
       <td></td> 
      </tr> 
     </table> 
    </asp:Panel> 
     <asp:Panel ID="pnlA" runat="server" Visible="false"> 
      <table style="width:100%"> 
      <tr> 
       <td style="text-align:right;width:30%"> 
        <asp:Label ID="lblStateA" runat="server" Text="State A"></asp:Label> 
       </td> 
       <td> 
        <asp:TextBox ID="txtboxA" runat ="server"></asp:TextBox> 

       </td> 
       <td></td> 
      </tr> 
     </table> 
     </asp:Panel> 
     <asp:Panel ID="pnlB" runat="server" Visible="false"> 
      <table style="width:100%"> 
      <tr> 
       <td style="text-align:right;width:30%"> 
        <asp:Label ID="lblB" runat="server" Text="State B"></asp:Label> 
       </td> 
       <td> 
        <asp:TextBox ID="txtB" runat ="server"></asp:TextBox> 

       </td> 
       <td></td> 
      </tr> 
     </table> 
     </asp:Panel> 
     <asp:Panel ID="pnlC" runat="server" Visible="false"> 
      <table style="width:100%"> 
      <tr> 
       <td style="text-align:right;width:30%"> 
        <asp:Label ID="lblc" runat="server" Text="State C"></asp:Label> 
       </td> 
       <td> 
        <asp:TextBox ID="txtc" runat ="server"></asp:TextBox> 

       </td> 
       <td></td> 
      </tr> 
     </table> 
     </asp:Panel> 
    </div> 
    </form> 
</body> 
</html> 

代碼隱藏

namespace WebApplication1 
{ 
    public partial class dropdown : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 

     } 

     protected void ddlState_SelectedIndexChanged(object sender, EventArgs e) 
     { 

     for (int i = 1; i < ddlState.Items.Count; i++) 
     { 
      var control = ddlState.Items[i].Value; 
      this.FindControl(control).Visible = false; 
     } 

     string item = ddlState.SelectedValue; 
     this.FindControl(item).Visible = true; 
    } 
} 

}

希望這有助於

編碼快樂

相關問題