当前位置: 代码迷 >> ASP.NET >> 有一个无效 SelectedValue,因为它不在项目列表中。这是怎么回事?
  详细解决方案

有一个无效 SelectedValue,因为它不在项目列表中。这是怎么回事?

热度:6709   发布时间:2013-02-25 00:00:00.0
有一个无效 SelectedValue,因为它不在项目列表中。这是怎么回事?
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.ArgumentOutOfRangeException: “”有一个无效 SelectedValue,因为它不在项目列表中。
参数名: value

源错误: ((ListBox)this.Controls[0].Controls[2].Controls[1].Controls[4]).SelectedValue = sdr.GetValue(1).ToString();


行 407: {
行 408: ((TextBox)this.Controls[0].Controls[2].Controls[1].Controls[1]).Text = sdr.GetValue(0).ToString();
行 409: ((ListBox)this.Controls[0].Controls[2].Controls[1].Controls[4]).SelectedValue = sdr.GetValue(1).ToString();
行 410: ((ListBox)this.Controls[0].Controls[2].Controls[1].Controls[7]).SelectedValue = sdr.GetValue(2).ToString();
行 411: ((Button)this.Controls[0].Controls[2].Controls[1].Controls[9]).CommandArgument = e.CommandArgument.ToString();
 

源文件: E:\winderzl\wlbye\ItemManage.cs 行: 409 

堆栈跟踪: 


[ArgumentOutOfRangeException: “”有一个无效 SelectedValue,因为它不在项目列表中。
参数名: value]
  System.Web.UI.WebControls.ListControl.set_SelectedValue(String value) +8544661
  wlbye.wlComponent.wlWebEditor.ItemManage.GridRowCommand(Object sender, GridViewCommandEventArgs e) in E:\winderzl\wlbye\ItemManage.cs:409
  System.Web.UI.WebControls.GridView.OnRowCommand(GridViewCommandEventArgs e) +108
  System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +112
  System.Web.UI.WebControls.GridView.OnBubbleEvent(Object source, EventArgs e) +95
  System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
  System.Web.UI.WebControls.GridViewRow.OnBubbleEvent(Object source, EventArgs e) +123
  System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
  System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +118
  System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) +135
  System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
  System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
  System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +175
  System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565

 


------解决方案--------------------------------------------------------
如果你是在 在编辑的时候出错的话 

那么应该是因为你数据库那一列的值绑定在DropDownList的时候 DropDownList没有对应的值

------解决方案--------------------------------------------------------
在值绑定在DropDownList前使用了 SelectValue附值了把 绑定的时候加个空看看.
------解决方案--------------------------------------------------------
我知道,我知道,给我分给我分。。。
绑定在DropDownList的时候 DropDownList没有对应的值
------解决方案--------------------------------------------------------
楼上的兄弟们 已经解答了。。。。 

错误说明的已经很明确了。。。 - -
------解决方案--------------------------------------------------------
很简单:
((ListBox)this.Controls[0].Controls[2].Controls[1].Controls[4]).SelectedValue = sdr.GetValue(1).ToString(); 

这个sdr.GetValue(1)的值在listbox中没有。

你应该在设置SelectedValue之前,先判断以下sdr.GetValue(1)的值是否存在Listbox中。
------解决方案--------------------------------------------------------
应该是因为你数据库那一列的值绑定在DropDownList的时候 DropDownList没有对应的值
------解决方案--------------------------------------------------------
ListBox 自己先绑定下吧。

((ListBox)this.Controls[0].Controls[2].Controls[1].Controls[4]).DataSource= **;
((ListBox)this.Controls[0].Controls[2].Controls[1].Controls[4]).DataBind();

再取值
((ListBox)this.Controls[0].Controls[2].Controls[1].Controls[4]).SelectedValue = sdr.GetValue(1).ToString();
  相关解决方案