簡體   English   中英

查看文本框是否為空C#的最有效方法

[英]Most efficient way to see if any of textBoxes are empty C#

我有一個可以包含多個文本框的Webform。

可以說3:txt1 txt2 txt3

顯然我可以編寫以下代碼:

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方式! 第一部分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而不是進行修剪,而不是將值與空字符串進行比較。 請記住,.Net Framework 4.0或更高版本提供String.IsNullOrWhiteSpace


另一個選擇是將這些特定的文本框放在Panel等組控件中,然后可以使用

yourPanel.Controls.OfType<TextBox>().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控件並在中定義一個TextBox。 在后面的代碼中,執行您的操作,但只執行一個if語句,該語句會使控件中具有ID的文本框無效

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM