dropdownlist遇到一个很奇葩的错误

qile3897 2013-12-30 09:08:59
错误提示是 “ddlXCity”有一个无效 SelectedValue,因为它不在项目列表中。
参数名: value
出问题的代码
        
DataSet ds = WebPubDB.DbHelper.Query("select organid,organname,organupid,schoolcities from dc_organ where organid=" + yixinUtils.GetSchoolID(openid, apid)); //根据openid,apid得到学校所在地市,区县,及学校id
ddlCity.SelectedValue = ds.Tables[0].Rows[0][3].ToString();
ddlCity_SelectedIndexChanged(this, null);
ddlXCity.SelectedValue = ds.Tables[0].Rows[0][2].ToString();
ddlXCity_SelectedIndexChanged(this, null);
ddlSchool.SelectedValue = (ds.Tables[0].Rows[0][0].ToString());
//绑定


看代码,三级dropdownlist 联动

//绑定地市 运行上面那段代码之前,先执行下这个
protected void bind()
{
DataSet ds = WebPubDB.DbHelper.Query("select OrganID,OrganFullName from dc_organ where organtypename='地市' order by organname");
this.ddlCity.DataSource = ds.Tables[0];
this.ddlCity.DataTextField = "OrganFullName";
this.ddlCity.DataValueField = "OrganID";
this.ddlCity.DataBind();
ddlCity.Items.Add(new ListItem("请选择", "-1"));
ddlCity.SelectedValue = "-1";
ddlCity_SelectedIndexChanged(this, null);
}
//地市改变区县跟着改变
protected void ddlCity_SelectedIndexChanged(object sender, EventArgs e)
{
DataSet ds = WebPubDB.DbHelper.Query("select qxno,qxname from dc_qxinfo where organupid='" + ddlCity.SelectedValue + "' order by qxname");
ddlXCity.Items.Clear();
ddlXCity.DataSource = ds.Tables[0];
ddlXCity.DataTextField = "qxname";
ddlXCity.DataValueField = "qxno";
ddlXCity.DataBind();
ddlXCity.Items.Add(new ListItem("请选择", "-1"));
ddlXCity.SelectedValue = "-1";
ddlXCity_SelectedIndexChanged(this, null);

}
//区县改变学校跟着改变
protected void ddlXCity_SelectedIndexChanged(object sender, EventArgs e)
{
DataSet ds = WebPubDB.DbHelper.Query("select OrganID,OrganName from dc_organ where organtypename='学校' and organupid='" + ddlXCity.SelectedValue + "' order by organname");
ddlSchool.Items.Clear();
ddlSchool.DataSource = ds.Tables[0];
ddlSchool.DataTextField = "OrganName";
ddlSchool.DataValueField = "OrganID";
ddlSchool.DataBind();
ddlSchool.Items.Add(new ListItem("请选择", "-1"));
ddlSchool.SelectedValue = "-1";
}

我将上面的代码改成下面这样不调用bind,和联动就没问题了

DataSet ds = WebPubDB.DbHelper.Query("select organid,organname,organupid,schoolcities from dc_organ where organid=" + yixinUtils.GetSchoolID(openid, apid));
DataSet dsd = WebPubDB.DbHelper.Query("select OrganID,OrganFullName from dc_organ where organtypename='地市' order by organname");
this.ddlCity.DataSource = dsd.Tables[0];
this.ddlCity.DataTextField = "OrganFullName";
this.ddlCity.DataValueField = "OrganID";
this.ddlCity.DataBind();
ddlCity.SelectedValue = ds.Tables[0].Rows[0][3].ToString();
DataSet dsx = WebPubDB.DbHelper.Query("select qxno,qxname from dc_qxinfo where organupid='" + ddlCity.SelectedValue + "' order by qxname");
ddlXCity.Items.Clear();
ddlXCity.DataSource = dsx.Tables[0];
ddlXCity.DataTextField = "qxname";
ddlXCity.DataValueField = "qxno";
ddlXCity.DataBind();
ddlXCity.SelectedValue = ds.Tables[0].Rows[0][2].ToString();
DataSet dss = WebPubDB.DbHelper.Query("select OrganID,OrganName from dc_organ where organtypename='学校' and organupid='" + ddlXCity.SelectedValue + "' order by organname");
txtname.Text = yixinUtils.GetTel(openid, apid);
ddlSchool.Items.Clear();
ddlSchool.DataSource = dss.Tables[0];
ddlSchool.DataTextField = "OrganName";
ddlSchool.DataValueField = "OrganID";
ddlSchool.DataBind();
ddlSchool.SelectedValue = ds.Tables[0].Rows[0][0].ToString();

何解??
...全文
110 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
秦qdb 2014-01-22
  • 打赏
  • 举报
回复
因为第一种写法 区县里没有加载地市或者由于刷新导致地市需要再区县里重新加载
qile3897 2013-12-30
  • 打赏
  • 举报
回复
还有用dataset可视化工具查看报错。。什么情况

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧