我用AjaxPro做级联菜单
在类里写了这样一个方法,返回的是DataSet
//获取二级节点
[AjaxMethod(HttpSessionStateRequirement.Read)]
public static DataSet GetClassTwoList(int classId)
{
string sql = "Select ClassTId,ClassTName From S_ClassTwo Where ClassId=" + classId;
return GetDataSet(sql);
}
然后前台是这样调用
//--一级目录--
function classTwo()
{
var classId = document.getElementById("DropDownList1");
//**就是下面这句一调用就报错! 大家有遇见过的吗?
var TwoDs = AjaxMethodClass.GetClassTwoList(classId.value);
// var ds = TwoDs.value;
// alert(Twods);
// document.all("DropDownList2").length = 0;
// var ds = TwoDs;
// if(ds!=null&&typeof(ds)=="object"&&ds.Tables!=null)
// {
// for(var i=0;i<ds.Tables[0].Rows.length;i++)
// {
// var name = ds.Tables[0].Rows[i].ClassName;
// var id = ds.Tables[0].Rows[i].ClassId;
//
// document.all("DropDownList2").options.add(new Option(name,id));
// }
// }
}
------解决方案--------------------------------------------------------
[AjaxMethod()]
public DataSet GetClassTwoList(int classId)
{
string sql = "Select ClassTId,ClassTName From S_ClassTwo Where ClassId=" + classId;
return GetDataSet(sql);
}
上面的东西不需要加的
var classId = document.getElementById("DropDownList1");
var index=ddl.selectedIndex;
var Value=ddl.options[index].value;
var Text=ddl.options[index].text;
var TwoDs = AjaxMethodClass.GetClassTwoList(Value);
这句写的有问题 向上面这样改一下试试?