日期:2014-05-18  浏览次数:20578 次

神啊救救我把,,DropDownList搞死我了 搞了一下午了
DropDownList是这样绑定 ddlCK.DataSource = manager.GetAllVIWWHUSERDUTY(ViewState["pkid"].ToString());
  ddlCK.DataTextField = "NAME_1";
  ddlCK.DataValueField = "ID";
  ddlCK.DataBind();
里面的值是第一仓库和第二仓库

我要获取他的text值这样获取的 string id = ddlCK.SelectedItem.Text;
可是我每次选择的第二仓库我获取的值就是第一仓库 这是为什么 哪里错了??
我试了另外一种方法就是这样绑定的一样


 IList<VIWWHUSERDUTY> list = manager.GetAllVIWWHUSERDUTY(ViewState["pkid"].ToString());
  ddlCK.Items.Clear();
  foreach (VIWWHUSERDUTY vs in list)
  {
  //ListItem item = new ListItem(pro.ProName, pro.ProductId.ToString());
  ListItem item = new ListItem(vs.NAME_1, vs.WHNUM.ToString());
  ddlCK.Items.Add(item);

  }
也获取不到第二仓库 那位大侠救救我吧

------解决方案--------------------
ddlCK.SelectedText获取的是DropDownList绑定后下拉框里可以看到并选择的值,即ddlCK.DataTextField绑定的值

ddlCK.SelectedValue获取的是ddlCK.DataValueField 绑定的值

还有"我每次选择的第二仓库我获取的值就是第一仓库 这是为什么 哪里错了??"

你确定你的方法是在!IsPostBack里吗


------解决方案--------------------
如果用的是asp.net 自带的控件,还要设置AutoPostBack="True"
还有绑定的脚本是否写在!Page.IsPostBack里面
------解决方案--------------------
manager.GetAllVIWWHUSERDUTY(ViewState["pkid"].ToString()) 很怀疑是你这里出了问题...
------解决方案--------------------
if(!IsPostBack)
{
//...
}

初学者最坑爹的马虎错误~