ASP用于验证所有文本框的动态方式不为null

时间:2012-07-22 15:48:20

标签: asp.net

我要做的是基本上创建一种方法来验证所有文本框是否已满。因此,如果我在一个页面上有11个文本框,我基本上可以运行此QC检查并验证每个文本框中的一些信息。

这是我正在尝试做的事情,但它没有成功。

private void VerifyTextBoxes()
{
    Control[] AllTextBoxes = FindControl("TextBox");
    foreach(Control c in AllTextBoxes)
    {
        //verify work here
    }
}

问题是双重的,我知道FindControl没有转换成[],但我不知道该怎么做。此外,FindControl正在寻找ID名称,有没有办法按类型找到它?例如所有TextBoxes?或者所有ComboBoxes?

这是我的aspx

<asp:Content ID="Content1" ContentPlaceHolderID="AdministrationContent" runat="Server">
<ul>
    <li>
        <asp:Label ID="DealerShipID" runat="server" Text="Dealership ID"></asp:Label>
    </li>
    <li>
        <telerik:RadTextBox ID="InputDealershipID" runat="server" Width="250px">
        </telerik:RadTextBox>
    </li>
</ul>

2 个答案:

答案 0 :(得分:1)

您可以遍历所有控件并仅拉出TextBoxes:

protected void Page_Load(object sender, EventArgs e)
{
    List<RadTextBox> allTextBoxes = new List<RadTextBox>();
    FindTextBoxes(this, allTextBoxes);

    foreach (RadTextBox tb in allTextBoxes)
    {
        // Do something here.
    }
}

private void FindTextBoxes(Control parent, List<RadTextBox> allTextBoxes)
{
    foreach (Control c in parent.Controls)
    {
        RadTextBox tb = c as RadTextBox;
        if (tb != null)
        {
            allTextBoxes.Add(tb);
        }

        FindTextBoxes(c, allTextBoxes);
    }
}

答案 1 :(得分:1)

private bool VerifyTextBoxes(Control parent)
{
    var myTextBoxs = parent.Controls.OfType<TextBox>();

    bool allgood=true;

    foreach(TextBox txtbx in myTextBoxs)
    {
        if(String.IsNullOrWhiteSpace(txtbx.Text.ToString())
        allgood=false;
    }
    return allgood;
}

在您要验证的位置使用此行

if(!VerifyTextBoxes(Content1))
{
    //Do something is not verfied, i.e found null
}