2010-12-10 59 views
0

我有两个搜索下拉列表,第一个列表是针对城市,第二个列表是针对所选城市的区域。我希望在第二个下拉列表中添加一个默认值,默认情况下会搜索所有区域,除非从包含特定搜索的区域ID的列表中选择特定区域。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 2010-12-10 23:34:46

+0

我想在第二个下拉列表中添加一个默认值,该默认值将默认搜索所有区域 – Chris 2010-12-10 23:37:38

回答

1

把后面的代码绑在第二位。创建数据表并在开始时插入Select文本并将数据表绑定到DDL。 DataTable dt = DataRow dr = dt.NewRow() dr [“areaName”] =“All”; dr [“SqlArea”] =“全部”; tbldata.Rows.InsertAt(dr,0);

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

+0

Heck,从代码隐藏中绑定两者。 joelt 2010-12-11 02:43:44

0

您可以尝试为第二个下拉列表添加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 2010-12-11 02:03:26

0

克里斯,

我接到了一个答案HERE下面的想法,但基本上要修改您的查询将在下面的形式:

您的原创:

SELECT * FROM [Cities] 

更改为:

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

老问题,但你永远不会fo和一个答案。