私は 2 つのajax:CascadingDropDownを持っています。1つはstateで、もう 1 つはcountyです。ユーザーが状態を変更したかのように機能し、郡に新しいデータが補充されます。ただし、問題は、郡が新しいデータを取得すると、選択されたインデックスが同じままになることです。ユーザーが状態を変更したときに、選択したインデックスを 0 に設定するにはどうすればよいですか? ありがとう!
<asp:DropDownList ID="Location_State" runat="server">
</asp:DropDownList>
<ajax:CascadingDropDown ID="StateCascading" runat="server" Category="State"
TargetControlID="Location_State"
ServiceMethod="BindStateDropdown"
ServicePath="CountyService.asmx">
</ajax:CascadingDropDown>
<asp:DropDownList ID="Location_County" runat="server">
</asp:DropDownList>
<ajax:CascadingDropDown ID="CountyCascading" runat="server" Category="County"
TargetControlID="Location_County"
ParentControlID="Location_State"
ServiceMethod="BindCountyDropdown"
ServicePath="CountyService.asmx">
</ajax:CascadingDropDown>
郡リストにデータを入力する関数は次のとおりです
[WebMethod]
public CascadingDropDownNameValue[] BindCountyDropdown(string knownCategoryValues, string category)
{
StringDictionary statedetails = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);
List<CascadingDropDownNameValue> countydetails = new List<CascadingDropDownNameValue>();
string tableName = "county";
string sqlSQL = "";
string sqlConnStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
SqlConnection sqlConn = new SqlConnection(sqlConnStr);
sqlConn.Open();
sqlSQL = "SELECT [NAME], [CNTY_FIPS] FROM " + tableName + " [county] WHERE (\[STATE_FIPS] = @STATE_FIPS order by name";
SqlCommand cmdSql = new SqlCommand(sqlSQL, sqlConn);
((SqlParameter)cmdSql.Parameters.Add("@STATE_FIPS", SqlDbType.VarChar)).Value = statedetails["State"];
SqlDataReader rdr = cmdSql.ExecuteReader();
while (rdr.Read())
{
countydetails.Add(new CascadingDropDownNameValue(rdr["NAME"].ToString(), rdr["CNTY_FIPS"].ToString()));
}
rdr.Close();
sqlConn.Close();
return countydetails.ToArray();
}