使用asp.net

时间:2017-04-11 06:42:11

标签: c# asp.net ajax drop-down-menu cascadingdropdown

我有不同类别员工在不同地区可用的宿舍数据。所以我想在第一个下拉列表中填充区域。在选择区域的基础上,我想填充第二个下拉列表,该下拉列表将显示该区域可用的员工类别。 然后我想将这两个参数传递给第三个下拉列表,该下拉列表显示该特定区域和员工类别的季度名称。类下拉列表的参数是区域名称的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时转换失败。

虽然我选择了不同的区域,但它采用了第一个值格式表,即堡垒

0 个答案:

没有答案