2010-12-10 16 views
0

検索のドロップダウンリストが2つあり、1番目のリストは都市用で、2番目のリストは選択した都市内のエリア用です。 2番目のドロップダウンリストにデフォルト値を追加して、特定の検索のareaIDを含むリストから特定のエリアを選択しない限り、デフォルトですべてのエリアを検索したいと思います。asp.net dropdownlist

<asp:DropDownList ID="DropDownList1" runat="server" 
DataSourceID="SqlDataSource1" DataTextField="cityName" AutoPostBack="true" DataValueField="cityID"> 
</asp:DropDownList> 
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
SelectCommand="SELECT * FROM [Cities]"></asp:SqlDataSource> 
<asp:DropDownList ID="DropArea" runat="server" DataSourceID="SqlArea" 
    DataTextField="areaName" DataValueField="areaID"> 
</asp:DropDownList> 
<asp:SqlDataSource ID="SqlArea" runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
    SelectCommand="SELECT * FROM [area] WHERE ([cityID] = @cityID)"> 
    <SelectParameters> 
     <asp:ControlParameter ControlID="DropDownList1" DefaultValue="0" Name="cityID" 
      PropertyName="SelectedValue" Type="Int16" /> 
    </SelectParameters> 
</asp:SqlDataSource> 
    <asp:Button ID="Button1" runat="server" Text="Search" onclick="Button1_Click" /> 
+0

ここに質問がありますか? – James

+0

2番目のドロップダウンリストにデフォルト値を追加して、すべての領域をデフォルトで検索します。 – Chris

答えて

1

コードを後ろからバインドします。データテーブルを作成し、最初にSelectテキストを挿入し、データテーブルをDDLにバインドします。 DataTable dt = DataRow dr = dt.NewRow() dr ["areaName"] = "すべて"; dr ["SqlArea"] = "すべて"; tbldata.Rows.InsertAt(dr、0);

DropArea.DataSource = dt; DropArea.DataBind();

+0

地獄、コードビハインドから両方をバインドします。 コントロールは夢中です。 – joelt

0

2番目のドロップダウンリストOnDataBound = "DropArea_DataBound"イベントを追加できます。その後、

protected void DropArea_DataBound(object sender, EventArgs e) 
{ 
    DropArea.Items.Insert(0, new ListItem() {Value = "-1", Text = "ALL"}); 
} 

をそして、あなたは、イベントをクリック扱い、チェック:

とコードで使用

var value = DropArea.SelectedItem.Value; 
if(string.equals(value, '-1') 
{ 
    use your logic here 
} 

が、それはあなたの問題に役立つことを願っています。

よろしくお願いいたします。

+0

-1の値でエラーが発生する – Chris

0

クリス、

私は答えHEREから以下のアイデアを得たが、基本的には、次の形式であるためにあなたのクエリを変更したい:

あなたのオリジナル:

SELECT * FROM [Cities] 

変更:

SELECT City FROM [Cities] 
UNION ALL 
SELECT 'ALL' 

そして答え。

関連する問題