3

私がやろうとしているのは、基本的に、すべてのテキストボックスがいっぱいであることを確認する1つの方法を作成することです. したがって、1 ページに 11 個のテキスト ボックスがある場合、基本的にこの QC チェックを実行して、各テキスト ボックスに何らかの情報があることを確認できます。

これは私がやろうとしていることですが、うまくいきません。

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

問題は 2 つあります。FindControl が [] に変換されないことはわかっていますが、その方法がわかりません。また、FindControl は ID 名を探していますが、タイプで見つける方法はありますか? たとえば、すべての TextBox? それともすべてのコンボボックス?

ここに私の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>

4

2 に答える 2

1

すべてのコントロールをループして、TextBox のみを引き出すことができます。

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);
    }
}
于 2012-07-22T15:52:58.203 に答える
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
}
于 2012-07-22T15:56:40.133 に答える