0

asp.net パネルに問題があります。他のドロップダウン ボックスのインデックスを変更するときにドロップダウン ボックスのデータソースの選択コマンドを変更したいのですが、新しいドロップダウン ボックスを変更するたびに、このコードを作成します。

   <asp:UpdatePanel ID="UpdatePanel1" runat="server"  >
          <ContentTemplate>
              <asp:DropDownList ID="comboCountry" runat="server"   AutoPostBack="True"
                    DataSourceID="SqlDataSource3"  OnSelectedIndexChanged="comboCountry_OnSelectedIndexChanged"
                    DataTextField="country_name" DataValueField="country_id">

                  </asp:DropDownList>
                <asp:SqlDataSource ID="SqlDataSource3" runat="server" 
                    ConnectionString="<%$ ConnectionStrings:JobsConnectionString %>" 
                    SelectCommand="SELECT * FROM [country]"></asp:SqlDataSource>
                </td>
             </tr>
            <tr class="trwidth">
            <td>
                <asp:DropDownList ID="comboCity" runat="server" DataSourceID="SqlDataSource2"  
                    DataTextField="city_name" DataValueField="location_id">
                </asp:DropDownList>
                <asp:SqlDataSource ID="SqlDataSource2" runat="server" 
                    ConnectionString="<%$ ConnectionStrings:JobsConnectionString %>" 
                    SelectCommand="SELECT * FROM [location]"></asp:SqlDataSource> 
        </ContentTemplate>
    </asp:UpdatePanel>

コードビハインド:

protected void comboCountry_OnSelectedIndexChanged(object sender, EventArgs e)
{
    try
    {
        SqlDataSource2.SelectCommand = "SELECT * FROM [location] where [country_id]=" + comboCountry.SelectedValue;            
       // SqlDataSource2.DataBind();
        comboCity.DataBind();
    }
    catch (Exception exception)
    {
        Debug.WriteLine(exception.Message);
    }
}
4

1 に答える 1

0

最初のドロップダウンで country_code の値を選択し、2 番目のドロップダウン パラメータを最初のドロップダウンにバインドします。次に、最初のドロップダウンで自動ポストバックを true に設定すると、2 番目のドロップダウンが結果でレンダリングされます。

于 2013-01-08T20:48:57.193 に答える