Asp.net Ajax级联dropdownlist不适用于webservices方法
需要从另一个下拉值绑定下拉值,而不是web方法 即使在添加了web引用之后也会触发,不会显示任何错误 我得到错误*方法500 我正在使用visual studio,我将asp.net应用程序作为一个项目,将web服务作为另一个项目。我正在asp.net应用程序中使用web服务 我的web服务代码中存在某种问题。但我无法从asp.net应用程序到web服务进行连续调试 我在应用程序和web服务中都设置了断点,但在web服务中未激活断点,它显示了连接错误 在本地主机上托管时如何执行此操作 my country.aspx代码Asp.net Ajax级联dropdownlist不适用于webservices方法,asp.net,web-services,c#-4.0,ajaxcontroltoolkit,Asp.net,Web Services,C# 4.0,Ajaxcontroltoolkit,需要从另一个下拉值绑定下拉值,而不是web方法 即使在添加了web引用之后也会触发,不会显示任何错误 我得到错误*方法500 我正在使用visual studio,我将asp.net应用程序作为一个项目,将web服务作为另一个项目。我正在asp.net应用程序中使用web服务 我的web服务代码中存在某种问题。但我无法从asp.net应用程序到web服务进行连续调试 我在应用程序和web服务中都设置了断点,但在web服务中未激活断点,它显示了连接错误 在本地主机上托管时如何执行此操作 my co
我的Web服务代码(.asmx)
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
使用System.Web.Services;
使用AjaxControlToolkit;
使用系统数据;
使用System.Data.SqlClient;
使用系统配置;
使用System.Collections.Specialized;
///
///cascadingdropdown的摘要说明
///
[WebService(命名空间=”http://tempuri.org/")]
[WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService()]
//要允许使用ASP.NET AJAX从脚本调用此Web服务,请取消注释以下行。
//[System.Web.Script.Services.ScriptService]
公共类cascadingdropdown:System.Web.Services.WebService
{
SqlConnection con=新的SqlConnection(ConfigurationManager.ConnectionString[“addcontact”].ToString());
公共cascadingdropdown()
{
//如果使用设计的组件,请取消注释以下行
//初始化组件();
}
[网络方法]
公共字符串HelloWorld()
{
返回“你好世界”;
}
[网络方法]
public CascadingDropDownNameValue[]addstate(字符串状态,字符串城市)
{
con.Open();
SqlCommand cmdstate=新的SqlCommand(“从tblStates中选择stateid、statename”,con);
cmdstate.ExecuteOnQuery();
SqlDataAdapter dastate=新的SqlDataAdapter(cmdstate);
DataSet dsstate=新数据集();
dastate.Fill(dsstate);
con.Close();
列表状态名称=新列表();
foreach(dsstate.Tables[0].Rows中的DataRow dtrow)
{
字符串stateid=dtrow[“stateid”].ToString();
字符串statename=dtrow[“statename”].ToString();
Add(新的cascadingdropdownname值(statename,stateid));
}
返回statesnames.ToArray();
}
[网络方法]
public CascadingDropDownNameValue[]addcity(字符串状态,字符串城市)
{
int stateid;
StringDictionary statedetails=AjaxControlToolkit.CascadingDropDown.ParseKnownCategoryValuesString(状态);
stateid=Convert.ToInt32(statedetails[“state”]);
con.Open();
SqlCommand cmdcity=新SqlCommand(“从tblcities中选择cityid、stateid、cityname,其中stateid=@stateid”,con);
cmdcity.Parameters.AddWithValue(“@stateid”,stateid);
cmdcity.ExecuteNonQuery();
SqlDataAdapter dacity=新的SqlDataAdapter(cmdcity);
数据集dscity=新数据集();
dacity.Fill(dscity);
con.Close();
List citynames=新列表();
foreach(dscity.Tables[0]中的DataRow dtrow.行)
{
字符串cityid=dtrow[“cityid”].ToString();
字符串cityname=dtrow[“cityname”].ToString();
Add(新的cascadingdropdownname值(cityid,cityname));
}
返回citynames.ToArray();
}
}`
尝试使用AjaxControltoolkit级联下拉菜单使用的函数的标准定义:
public CascadingDropDownNameValue[] addState(String knownCategoryValues, String category, String contextKey)
{
...
}
public CascadingDropDownNameValue[] addCity(String knownCategoryValues, String category, String contextKey)
{
...
}
上下文键不是必需的参数,如果不需要,可以使用它。我也有完全相同的问题,我找到了一个“教程”,并尝试用我自己的代码来匹配它,但我无法让它工作,我还遇到了方法500错误 请尝试100%使用此网站代码 这对我很有效,我只是一次安装了一些代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using AjaxControlToolkit;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections.Specialized;
/// <summary>
/// Summary description for cascadingdropdown
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService()]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class cascadingdropdown : System.Web.Services.WebService
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["addcontact"].ToString());
public cascadingdropdown()
{
//Uncomment the following line if using designed components
//InitializeComponent();
}
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
[WebMethod]
public CascadingDropDownNameValue[] addstate(string state, string city)
{
con.Open();
SqlCommand cmdstate = new SqlCommand("select stateid,statename from tblStates", con);
cmdstate.ExecuteNonQuery();
SqlDataAdapter dastate = new SqlDataAdapter(cmdstate);
DataSet dsstate = new DataSet();
dastate.Fill(dsstate);
con.Close();
List<CascadingDropDownNameValue> statesnames = new List<CascadingDropDownNameValue>();
foreach (DataRow dtrow in dsstate.Tables[0].Rows)
{
string stateid = dtrow["stateid"].ToString();
string statename = dtrow["statename"].ToString();
statesnames.Add(new CascadingDropDownNameValue(statename, stateid));
}
return statesnames.ToArray();
}
[WebMethod]
public CascadingDropDownNameValue[] addcity(string state, string city)
{
int stateid;
StringDictionary statedetails = AjaxControlToolkit.CascadingDropDown.ParseKnownCategoryValuesString(state);
stateid = Convert.ToInt32(statedetails["state"]);
con.Open();
SqlCommand cmdcity = new SqlCommand("select cityid,stateid,cityname from tblcities where stateid=@stateid", con);
cmdcity.Parameters.AddWithValue("@stateid", stateid);
cmdcity.ExecuteNonQuery();
SqlDataAdapter dacity = new SqlDataAdapter(cmdcity);
DataSet dscity = new DataSet();
dacity.Fill(dscity);
con.Close();
List<CascadingDropDownNameValue> citynames = new List<CascadingDropDownNameValue>();
foreach (DataRow dtrow in dscity.Tables[0].Rows)
{
string cityid = dtrow["cityid"].ToString();
string cityname = dtrow["cityname"].ToString();
citynames.Add(new CascadingDropDownNameValue(cityid, cityname));
}
return citynames.ToArray();
}
}`
public CascadingDropDownNameValue[] addState(String knownCategoryValues, String category, String contextKey)
{
...
}
public CascadingDropDownNameValue[] addCity(String knownCategoryValues, String category, String contextKey)
{
...
}