下拉框有一个无效 SelectedValue,因为它不在项目列表中。

lee3217813 2012-09-18 05:31:07
AssessProjectID_Select.DataSource = FrameWork.BusinessFacade.GetList("KPI_AssessProject");
AssessProjectID_Select.DataTextField = "AssessProjectName";
AssessProjectID_Select.DataValueField = "AssessProjectID";
AssessProjectID_Select.DataBind();

“AssessProjectID_Select”有一个无效 SelectedValue,因为它不在项目列表中。


我网上查了查,需要加一个默认选项,AssessProjectID_Select.SelectedValue = "4";
这样暂时可以了,但是我把键为4的项删除后又不行了,怎么解决这个啊
...全文
357 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lee3217813 2012-09-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
AssessProjectID_Select.DataSource = FrameWork.BusinessFacade.GetList("KPI_AssessProject");
AssessProjectID_Select.DataBind();
这样写是不应该出错的。

应该你还执行了其他的代码
[/Quote]
private void BindDDL()
{
AssesTypeID_Select.DataSource = FrameWork.BusinessFacade.GetList("KPI_AssesType");
AssesTypeID_Select.DataTextField = "AssesTypeDesc";
AssesTypeID_Select.DataValueField = "AssesTypeID";
//AssesTypeID_Select.SelectedValue = "1";
AssesTypeID_Select.DataBind();
AssesTypeID_Select.Items.Insert(0, new ListItem("请选择", ""));
}


绑定事件里就这个,其他代码不会有影响吧。
我也很奇怪,我前面一样的下拉框,用来查询的,不用选就可以,
这个是用来添加的,就不行了。代码都一样啊
lee3217813 2012-09-25
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
其他代码不会有影响吧。

应该说,还真有可能其他代码的影响,
你可以新建页面
把AssesTypeID_Select.DataSource = FrameWork.BusinessFacade.GetList("KPI_AssesType");
AssesTypeID_Select.DataTextField = "AssesTypeDesc";
AssesTypeID_Sel……
[/Quote]
唉,那我老出那个错误,不知道怎么改了。
算了,结贴了,回头让师傅给调调吧
孟子E章 2012-09-25
  • 打赏
  • 举报
回复
其他代码不会有影响吧。

应该说,还真有可能其他代码的影响,
你可以新建页面
把AssesTypeID_Select.DataSource = FrameWork.BusinessFacade.GetList("KPI_AssesType");
AssesTypeID_Select.DataTextField = "AssesTypeDesc";
AssesTypeID_Select.DataValueField = "AssesTypeID";
//AssesTypeID_Select.SelectedValue = "1";
AssesTypeID_Select.DataBind();
AssesTypeID_Select.Items.Insert(0, new ListItem("请选择", ""));

放到新建页面里面,其他的不加,你可以测试是否还保错》
孟子E章 2012-09-24
  • 打赏
  • 举报
回复
AssessProjectID_Select.DataSource = FrameWork.BusinessFacade.GetList("KPI_AssessProject");
AssessProjectID_Select.DataBind();
这样写是不应该出错的。

应该你还执行了其他的代码
lee3217813 2012-09-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
要设置SelectedValue,应该这样
ListItem x = AssessProjectID_Select.Items.FindByValue("默认选项的值")
if(x!=null) x.Selected=true;
[/Quote]
你好像没明白我的问题,
我不是要设置SelectedValue,我是为了不要程序出错。
AssessProjectID_Select.DataSource = FrameWork.BusinessFacade.GetList("KPI_AssessProject");
AssessProjectID_Select.DataBind();
直接这样会出错,错误为:AssessProjectID_Select”有一个无效 SelectedValue,因为它不在项目列表中。
在AssessProjectID_Select.DataBind();前面加一句AssessProjectID_Select.SelectedValue = "4";
程序才能正常运行,为了运行程序才加的。
但是这样肯定不行,有很大的隐患,把id为4的删除了就不行了
孟子E章 2012-09-24
  • 打赏
  • 举报
回复
要设置SelectedValue,应该这样
ListItem x = AssessProjectID_Select.Items.FindByValue("默认选项的值")
if(x!=null) x.Selected=true;
孟子E章 2012-09-24
  • 打赏
  • 举报
回复
说明

AssessProjectID_Select里面没有你要设置的值

lee3217813 2012-09-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
没太看明白你的意思。 你数据库里读出来怎么会有 无效的 Value 呢 你绑定的是ID就应该不会有问题。

如果你要加默认项,应该是把值设置为0或者更小。
AssessProjectID_Select.DataSource = FrameWork.BusinessFacade.GetList("KPI_AssessProject");
AssessProjectID_Select.Da……
[/Quote]
因为“4”是我绑定的数据中的最小的那个。
还有加AssessProjectID_Select.Items.Insert(0, new ListItem("请选择", "0"));也是在绑定数据后加,我绑定数据的时候就出错了,“AssessProjectID_Select”有一个无效 SelectedValue,因为它不在项目列表中。



AssessProjectID_Select.SelectedValue = "4";
AssessProjectID_Select.DataBind();
这样在绑定前加个选择的就能凑合

Banianer 2012-09-18
  • 打赏
  • 举报
回复
如果你要指定 AssessProjectID_Select 的选择项,可以设定为该项的值,但是删除项目后你这个设定要重新更改。 否则就出现 该项不在项目中。

Banianer 2012-09-18
  • 打赏
  • 举报
回复
没太看明白你的意思。 你数据库里读出来怎么会有 无效的 Value 呢 你绑定的是ID就应该不会有问题。

如果你要加默认项,应该是把值设置为0或者更小。
AssessProjectID_Select.DataSource = FrameWork.BusinessFacade.GetList("KPI_AssessProject");
AssessProjectID_Select.DataTextField = "AssessProjectName";
AssessProjectID_Select.DataValueField = "AssessProjectID";
AssessProjectID_Select.DataBind();
AssessProjectID_Select.Items.Insert(0, new ListItem("请选择", "0"));

不知道你是不是要加默认选择项,为什么非要加4

62,046

社区成员

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

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

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

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