【问题标题】:check if a values has been selected from dropdown in c#检查是否已从 C# 的下拉列表中选择了一个值
【发布时间】:2011-03-30 08:55:32
【问题描述】:

我在 asp.net 环境中有 3 个下拉框(组合框)。 它们都是可选的,所以如果用户选择了任何东西,我正在更新数据库,如果根本没有选择任何东西,我仍然使用空值更新数据库。

我试图这样做:

 int? CountryId = Convert.ToInt32(ddCountries.SelectedItem.Value);

我希望如果未选择任何内容,则将在 CountryId 中插入 null,但它会引发异常。

我试图搜索 ddCountries.isSelected(或类似的东西),但它显然不存在..

那么我如何确定是否在下拉框中进行了选择? - 通过 c# 代码。

非常感谢

ps:我有一个想法 - 我将每个下拉框放在一个 try...catch 块中,如果出现异常,请手动将变量设置为 null .. 但我不确定这是最好的方法!

【问题讨论】:

  • 我不想有必填字段验证器,因为选择是可选的......谢谢!
  • 为什么不使用int.TryParse()?如果未能将输入作为整数粘贴,则返回 false。

标签: c# selecteditem dropdownbox


【解决方案1】:

你在寻找

if(ddCountries.SelectedIndex > -1)

您永远不应该使用异常来控制程序流程。

【讨论】:

  • 嗨,我混合了你的答案和下面的答案(来自 LukasW 和三元运算符),它现在可以工作了。非常感谢您提供有关使用异常控制程序流的信息。
  • +1 表示“您永远不应该使用异常来控制程序流。”。对于某些人来说,这似乎重复得不够频繁。
【解决方案2】:

你可以用这个:

If ComboBoxChannel.SelectedValue.ToString.ToLower = "system.data.datarowview"
Then Exit Sub

请注意它在 VB.Net 中

【讨论】:

  • 问题与c# 相关,而不是vb.net。您应该考虑将代码翻译成c#,这非常简单。类似于if (ComboBoxChannel.SelectedValue.ToString().ToLower() == "system.data.datarowview") return;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多