我有不同类别员工在不同地区可用的宿舍数据。所以我想在第一个下拉列表中填充区域。在选择区域的基础上,我想填充第二个下拉列表,该下拉列表将显示该区域可用的员工类别。 然后我想将这两个参数传递给第三个下拉列表,该下拉列表显示该特定区域和员工类别的季度名称。类下拉列表的参数是区域名称的varchar参数而不是区域的id?怎么实现这个?以下是在webservice中使用的webmethod
[WebMethod]
public CascadingDropDownNameValue[] GetClass(string knownCategoryValues)
{
string area = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues)["area"];
string query = string.Format("SELECT build_id,build_pin FROM Building WHERE build_area = {0}",area);
List<CascadingDropDownNameValue> states = GetData(query);
return states.ToArray();
}
private List<CascadingDropDownNameValue> GetData(string query)
{
string conString = ConfigurationManager.ConnectionStrings["Rent"].ConnectionString;
SqlCommand cmd = new SqlCommand(query);
List<CascadingDropDownNameValue> values = new List<CascadingDropDownNameValue>();
using (SqlConnection con = new SqlConnection(conString))
{
con.Open();
cmd.Connection = con;
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
values.Add(new CascadingDropDownNameValue
{
name = reader[0].ToString(),
value = reader[1].ToString()
});
}
reader.Close();
con.Close();
return values;
}
}
}
以下是html代码
<asp:DropDownList ID="ddlClass" runat="server" Height="21px" Width="125px"></asp:DropDownList>
<asp:CascadingDropDown ID="cd_class" runat="server" TargetControlID="ddlClass" PromptText="Select Class" PromptValue="" ServicePath="~/ServiceCS.asmx" ServiceMethod="GetClass" Category="build_class" LoadingText="Loading..." ParentControlID="ddlarea"></asp:CascadingDropDown>
我收到此错误 将varchar值'Fort'转换为数据类型int时转换失败。
虽然我选择了不同的区域,但它采用了第一个值格式表,即堡垒