急求地区之间的二级级联的错误解决
前台代码如下:<script language="javascript" type="text/javascript">
<!--
// ACLOUD 常用JS函数
function getBid(s){
return document.getElementById(s);
}
function getBmc(s){
return document.getElementByName(s);
}
//显示分类列表
function showNext(sid,obj)
{
if(sid==null || sid=="" || sid.length<1)return;
var slt =getBid(obj);
var v = Company_Company_zc.getNextClass(sid).value; // 类的名称
//alert(v);
//return;
if (v != null){
if(v != null && typeof(v) == "object" && v.Tables != null)
{
slt.length = 0;
slt.options.length = 0;
slt.options.add(new Option("请选择",0));
//加了个“请选择”主要为了触发onchange事件
if(obj=="ddl2"){
}
for(var i=0; i<v.Tables[0].Rows.length; i++)
{
var txt = v.Tables[0].Rows[i].txt; //这个地方需要注意区分大小写
var vol = v.Tables[0].Rows[i].vol; //跟dataset表的列名称要一致
slt.options.add(new Option(txt,vol));
}
}
}
return;
}
-->
</script>
后台代码如下:
protected void Page_Load(object sender, EventArgs e)
{
//必要的级联中用到
AjaxPro.Utility.RegisterTypeForAjax(typeof(Company_Company_zc));
if (!IsPostBack)
{
BindDc();
}
}
public SqlConnection myConn()
{
SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=byszp;Integrated Security=True");
try
{
conn.Open();
return conn;
}
catch
{
throw;
}
}
/// <summary>
/// 获取下级分类
/// </summary>
[AjaxPro.AjaxMethod]
public DataSet getNextClass(string cid)
{
//因为不希望页面可以知道字段名称 所以 as txt,id as vol 如果是sql ser 可以用 =
//页面获取的 列名称 必须跟这个一同样 而且区分大小写 一般都是这个地方容易疏忽了
//所以二级分类没变化
string sql = @"select dqmc as txt,dqbh as vol from area where sfbh=" + cid;
try
{
return getDs(sql);
}
catch
{
//throw;
return null;
}
}
/// <summary>
/// 返回一个DataSet
/// </summary>
/// <param name="SQL"></param>
/// <returns></returns>
public DataSet getDs(string SQL)
{
SqlConnection conn = myConn();
DataSet Ds = new DataSet();
SqlDataAdapter Da = new SqlDataAdapter(SQL, conn);
try
{
Da.Fill(Ds);
return Ds;
}
catch
{
return null;
//throw;
}
}
/// <summary>
/// //数据绑定
/// </summary>
private void BindDc()
{
//第一个
string sql = @"select sfmc,sfbh from province";
ddl1.DataSource = getDs(sql);
ddl1.DataTextField = "sfmc";
ddl1.DataValueField = "sfbh";
ddl1.DataBind();
if (ddl1.DataSource != null) ddl1.Attributes.Add("onchange", "showNext(this.options[SelectedIndex].value,'ddl2');");
//可以先判断 DropDownList.SelectedItem.Value
//第二个
sql = @"select dqmc,dqbh from area where sfbh=" + ddl1.SelectedItem.Value;
ddl2.DataSource = getDs(sql);
ddl2.DataTextField = "dqmc";
ddl2.DataValueField = "dqbh";
ddl2.DataBind();
}
我是做省份和地区之间的二级级联。在运行的时候,选择省份的时候老是出现 行: 1
错误: 'SelectedIndex' 未定义 求各位前辈帮帮忙,急救!
--------------------编程问答-------------------- selectedIndex
小写试试 。 --------------------编程问答-------------------- js 中首字母都是小写的 --------------------编程问答-------------------- 也有可能是编码的问题,在传递中出现问题 --------------------编程问答-------------------- 原来的this.options[SelectedIndex] 改成这个就对了 this.options[ddl1。SelectedIndex] --------------------编程问答-------------------- this.options[ddl1.SelectedIndex]
补充:.NET技术 , ASP.NET