如何检查ASP.NET页面中没有或所有文本框是否输入了文本?

时间:2009-06-02 17:17:31

标签: c# asp.net

我正在创建发票申请,在用户可以输入订单项的部分中,某些字段将包括:数量,价格,扩展价格,描述等。

如果用户在任何字段中输入内容,则需要相应的字段,但如果没有数据输入任何字段,则相应字段中不需要任何内容​​。如果不做一堆if语句,这样做的有效而干净的方法是什么?

我想这就像在只有一个文本框有文本的情况下进行验证一样。

3 个答案:

答案 0 :(得分:3)

您可以在CustomValidator的ServerValidate事件中尝试类似的操作。

// test for all textboxes having some text in them...
e.IsValid = (from TextBox c in this.Controls
             where c is TextBox
             select c).All(tb => !string.IsNullOrEmpty(tb.Text));

可能需要一些修补才能做到 - 但你明白了。相应更改以测试所有文本框是否为空白。

您还可以在CustomValidator

中使用jQuery进行客户端验证
function clientValidate(sender, e) {

    // get array of textboxes with a common css class
    var textBoxes = $("#SomeCssSelector input").val();

    // loop here to test for having text or no text.
    e.IsValid = ... ;


}

答案 1 :(得分:2)

您可以创建TextBox数组并存储对数组中所有相关文本框的引用。当你需要时,你可以在for循环中迭代数组,寻找带有值的第一个项目。一旦找到具有值的值,您就会知道该数组中的所有其他项也需要值。

此外,如果您有其他相关文本框组,则可以创建其他数组以帮助将它们分组。

答案 2 :(得分:0)

如果这是ASP.NET,有几种方法。

  1. 使用ASP.NET中可用的字段验证程序。
  2. 使用JavaScript for Windows Forms。
  3. 对于Windows窗体,也使用控件验证器,或者您可以使用传递控件数组的简单函数。如果数组中的任何项目已填满,那么它需要通过返回未填充的字段等来填充所有项目。