C# 在asp.net中使用级联Dropdownlist的Ajax Dropdownlist
我有不同地区不同级别员工的宿舍数据。所以我想填充第一个dropdownlist的区域。根据区域的选择,我想填充第二个下拉列表,该列表将显示该区域内有宿舍的员工类别。 然后我想将这两个参数传递给第三个dropdownlist,它显示了特定区域和员工类别的季度名称。类下拉列表的参数是area,它是area name的varchar参数,而不是area的id?如何实现这一点?以下是webservice中使用的webmethodC# 在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
[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