查看任何文本框是否为空的最有效方法是C#
我有一个可以有多个文本框的网络表单 假设3:txt1 txt2txt3 显然,我可以编写以下代码:查看任何文本框是否为空的最有效方法是C#,c#,asp.net,vb.net,C#,Asp.net,Vb.net,我有一个可以有多个文本框的网络表单 假设3:txt1 txt2txt3 显然,我可以编写以下代码: bool atleastOneTextboxEmpty=false; If (txt1.Text.Tostring().Trim()=="") { atleastOneTextboxEmpty=true; } If (txt2.Text.Tostring().Trim()=="") { atleastOneTextboxEmpty=true; } If (txt3.Text.Tostring()
bool atleastOneTextboxEmpty=false;
If (txt1.Text.Tostring().Trim()=="")
{
atleastOneTextboxEmpty=true;
}
If (txt2.Text.Tostring().Trim()=="")
{
atleastOneTextboxEmpty=true;
}
If (txt3.Text.Tostring().Trim()=="")
{
atleastOneTextboxEmpty=true;
}
但我很确定有更好的方法来实现这一点(但到目前为止我还没有找到)
注:
在我的情况下,我不允许使用必需的字段验证器,表单可能有更多的文本框,其中一些文本框允许为空(因此我不能循环遍历所有表单文本框)。Lambda way!第一部分
Me.Controls.OfType(Of TextBox)(
获取表单上的所有文本框,Any
函数检查一个条件
Dim anyEmptyTBs = Me.Controls.OfType(Of TextBox)().Any(Function(tb) String.IsNullOrWhiteSpace(tb.Text))
创建文本框的集合/数组,然后可以执行以下操作:
var textBoxCollection = new[] { txt1, txt2, txt3 };
bool atleastOneTextboxEmpty = textBoxCollection
.Any(t => String.IsNullOrWhiteSpace(t.Text));
上面将检查数组textBoxCollection
中的所有文本框,并检查其中是否有一个值为空/仅空白
使用String.IsNullOrWhiteSpace
而不是修剪并将值与空字符串进行比较。请记住,String.IsNullOrWhiteSpace
可用于.Net framework 4.0或更高版本
另一个选项是将这些特定的文本框放在组控件中,如
面板
,然后可以使用
yourPanel.Controls.OfType<TextBox>().Any(.....
yourPanel.Controls.OfType().Any(。。。。。
您可以编写以下更简单的代码:
bool atleastOneTextboxEmpty =
txt1.Text.Trim() == "" ||
txt2.Text.Trim() == "" ||
txt3.Text.Trim() == "";
您还可以将控件放入数组中,并检查是否有空控件:
bool atleastOneTextboxEmpty =
new TextBox[] { txt1, txt2, txt3 }
.Any(t => t.Text.Trim() == "");
您可以使用Repeater控件并在其内部定义一个文本框。在“代码隐藏”中,执行您所做的操作,但只做一个if语句,用控件中的ID更改文本框是的,这是一个“小”改进。请看我的注释:我不完全熟悉您的代码,但我认为它会检查表单中的所有文本框。任务ion是如何以最有效的方式查看TextboxA、TextboxB和TextboxC是否为空的。@SNash,错过了您的注释。@SNash,修改了我的代码以仅验证所需的文本框。选项是创建这些文本框的数组/集合并对其进行迭代,如上面的代码所示