2010-12-10 7 views
0

검색을위한 두 개의 드롭 다운 목록이 있습니다. 첫 번째 목록은 도시 용이고 두 번째 목록은 선택한 도시 내의 영역 용입니다. 두 번째 드롭 다운 목록에 기본값을 추가하여 특정 검색에 대한 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

모든 영역을 기본적으로 검색하는 두 번째 드롭 다운 목록에 기본값을 추가하고 싶습니다. – Chris

답변

1

코드 숨김에서 두 번째를 바인딩합니다. 데이터 테이블을 만들고 시작 부분에 선택 텍스트를 삽입하고 데이터 테이블을 DDL에 바인딩하십시오. DataTable dt = DataRow dr = dt.NewRow() dr [ "areaName"] = "모두"; dr [ "SqlArea"] = "모두"; tbldata.Rows.InsertAt (dr, 0);

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

+0

지옥, 코드 숨김을 모두 바인딩하십시오. 컨트롤은 미친 생각입니다. – joelt

0

두 번째 dropdownlist 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' 

이전 질문 : 그리고 대답.

관련 문제