Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在asp.net中使用级联Dropdownlist的Ajax Dropdownlist_C#_Asp.net_Ajax_Drop Down Menu_Cascadingdropdown - Fatal编程技术网

C# 在asp.net中使用级联Dropdownlist的Ajax Dropdownlist

C# 在asp.net中使用级联Dropdownlist的Ajax Dropdownlist,c#,asp.net,ajax,drop-down-menu,cascadingdropdown,C#,Asp.net,Ajax,Drop Down Menu,Cascadingdropdown,我有不同地区不同级别员工的宿舍数据。所以我想填充第一个dropdownlist的区域。根据区域的选择,我想填充第二个下拉列表,该列表将显示该区域内有宿舍的员工类别。 然后我想将这两个参数传递给第三个dropdownlist,它显示了特定区域和员工类别的季度名称。类下拉列表的参数是area,它是area name的varchar参数,而不是area的id?如何实现这一点?以下是webservice中使用的webmethod [WebMethod] public CascadingDrop

我有不同地区不同级别员工的宿舍数据。所以我想填充第一个dropdownlist的区域。根据区域的选择,我想填充第二个下拉列表,该列表将显示该区域内有宿舍的员工类别。 然后我想将这两个参数传递给第三个dropdownlist,它显示了特定区域和员工类别的季度名称。类下拉列表的参数是area,它是area name的varchar参数,而不是area的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;
            }
        }
    }
[WebMethod]
public CascadingDropDownNameValue[]GetClass(字符串knownCategoryValues)
{
string area=CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues)[“区域”];
string query=string.Format(“选择build_id,build_pin FROM Building WHERE build_area={0}”,area);
列表状态=获取数据(查询);
返回状态。ToArray();
}
私有列表GetData(字符串查询)
{
string conString=ConfigurationManager.ConnectionStrings[“Rent”].ConnectionString;
SqlCommand cmd=新的SqlCommand(查询);
列表值=新列表();
使用(SqlConnection con=新的SqlConnection(consting))
{
con.Open();
cmd.Connection=con;
使用(SqlDataReader=cmd.ExecuteReader())
{
while(reader.Read())
{
添加(新的CascadingDropDownNameValue
{
名称=读取器[0]。ToString(),
value=读取器[1]。ToString()
});
}
reader.Close();
con.Close();
返回值;
}
}
}
下面是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时,转换失败。


虽然我选择了不同的区域,但它采用表中的第一个值,即fort

您正在为此编写的代码在哪里?我想通过传递区域文本和类文本来填充第三个dropdownlist