gpt4 book ai didi

c# - SelectedValue 无效...我知道为什么但我不知道如何处理它?

转载 作者:太空宇宙 更新时间:2023-11-03 10:58:04 25 4
gpt4 key购买 nike

我在 asp.net 中有一个 gridview/datagrid,它有模板列(我不使用数据绑定(bind)列)。这些列之一的内部是一个下拉列表。基本上这个下拉列表的数据源是一个存储活跃用户的查询...由于数据集的大小,我们不想显示所有不活跃和活跃的用户,所以我们限制为活跃。

基本上 sql 就是这样的:

SELECT EmployeeName FROM Employee WHERE Inactive=0

这很好用,但我有一个记录实际上引用了一个不活跃的员工,这种情况很少发生,但在某些情况下可能会发生。在仅在页面上使用下拉列表的 gridview 之外,我可以通过尝试/捕获异常并重新加载下拉列表来轻松处理此问题,以便它也可以包含不活动的员工。

但是在 gridview 内部我不知道如何“捕获”这个异常,因为该列只有一个:

SelectedValue ='<%# Eval("EmployeeName") %>'

因为页面引用了一个不活跃的员工,所以我得到了错误:

ddlEmployees' has a SelectedValue which is invalid because it does not exist in the list of items. Parameter name: value

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.ArgumentOutOfRangeException: 'ddlEmployees' has a SelectedValue which is invalid because it does not exist in the list of items. Parameter name: value

所以我知道为什么会这样,如果这是 gridview 之外的下拉列表,我实际上可以解决这个问题,但因为它在 gridview 中,我不确定如何处理这个问题?

我是否需要在 RowDataBound 事件中处理它?或者是否有一些 asp.net 标记只是说如果它的值不好则忽略?像这样的东西:

<asp:DropDownList ID="ddlEmployees" runat="server" SelectedValue='<%# Eval("Employee") == null ? 0 : Eval("Employee") %>'

我什至可以使用三元运算符吗?

最佳答案

将这个用于您的下拉列表。我假设 EmployeeName 是一个 Column 在这里,让我们假设这可能有 null 值。 [提供您的正确列名]

SelectedValue='<%#String.IsNullOrEmpty(Convert.ToString(Bind("EmployeeName")))
? "0" : Bind("EmployeeName") %>'

此外,您还可以在自己的 Sql 语句中执行此操作:

SELECT IsNull(EmployeeName,0) AS EmployeeName FROM Employees

关于c# - SelectedValue 无效...我知道为什么但我不知道如何处理它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18709750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com