Asp.net 循环浏览div中的文本框以查看是否有数据的最佳方法

Asp.net 循环浏览div中的文本框以查看是否有数据的最佳方法,asp.net,vb.net,Asp.net,Vb.net,所以我在一个内容页面上有一个div标签,里面有10个文本框。它们都以txb开头,然后是一个名称,例如txbSubmittedBy和txbOrderEntryDate。我想在处理页面之前,遍历所有文本框,检查用户是否已在其中输入数据 实现这一目标的最佳方式是什么?每个人?我考虑过使用With语句,但我不确定是否可以在控件名上进行模式匹配。我没有任何代码,因为我还没有写任何代码,因为我不知道如何做到这一点 下面是该div的asp代码 <div class="container-flui

所以我在一个内容页面上有一个div标签,里面有10个文本框。它们都以txb开头,然后是一个名称,例如txbSubmittedBy和txbOrderEntryDate。我想在处理页面之前,遍历所有文本框,检查用户是否已在其中输入数据

实现这一目标的最佳方式是什么?每个人?我考虑过使用With语句,但我不确定是否可以在控件名上进行模式匹配。我没有任何代码,因为我还没有写任何代码,因为我不知道如何做到这一点

下面是该div的asp代码

    <div class="container-fluid" id="dataheader">
        <div class="row PadLeft">
            <div class="col-sm-4 headercolumns">
                <asp:Label runat="server" ID="lblSubmittedBy" Text="Submitted By:" CssClass="headerlbls text-primary" />
                <asp:TextBox runat="server" ID="txbSubmittedBy" CssClass="txbHeader text-danger" />
            </div>
            <div class="col-sm-4 headercolumns">
                <asp:Label runat="server" ID="lblQarEntryDate" Text="QAR Entry Date:" CssClass="headerlbls text-primary" />
                &ensp;<asp:TextBox runat="server" ID="txbQarEntryDate" CssClass="txbHeader text-danger" />
           </div>
            <div class="col-sm-4 headercolumns">
                &emsp;&emsp;&emsp;&ensp;<asp:Label runat="server" ID="lblJobNumber" Text="Job #:"  CssClass="headerlbls text-primary" />
                <asp:TextBox runat="server" ID="txbJobNumber" CssClass="txbHeader text-danger" />
            </div>
        </div>
        <div class="row PadLeft">
            <div class="col-sm-4 headercolumns PadLeft">
                <asp:Label runat="server" ID="lblPoNumber" Text="PO #:" CssClass="headerlbls text-primary"  />
                &nbsp;<asp:TextBox runat="server" ID="txbPoNumber" CssClass="txbHeader text-danger" />
            </div>
            <div class="col-sm-4 headercolumns">
                <asp:Label runat="server" ID="lblOrderEntryDate" Text="Order Entry Date:" CssClass="headerlbls text-primary" />
                <asp:TextBox runat="server" ID="txbOrderEntryDate" CssClass="txbHeader text-danger" />
            </div>
            <div class="col-sm-4 headercolumns">
                &emsp;&ensp;<asp:Label runat="server" ID="lblShipDate" Text="Ship Date:" CssClass="headerlbls text-primary" />
                <asp:TextBox runat="server" ID="txbShipDate" CssClass="txbHeader text-danger" />
            </div>
        </div>
        <div class="row PadLeft">
            <div class="col-sm-4 headercolumns">
                &emsp;&ensp;&nbsp;<asp:Label runat="server" ID="lblCustomerName" Text="Customer:" CssClass="headerlbls text-primary" />
                <asp:TextBox runat="server" ID="txbCustomerName" CssClass="txbHeader text-danger customertxb" />
            </div>
            <div class="col-sm-4 headercolumns">
                &emsp;&emsp;&emsp;&emsp;&emsp;&ensp;<asp:Label runat="server" ID="lblStatus" Text="Status" CssClass="headerlbls text-primary" />
                <asp:TextBox runat="server" ID="txbStatus" CssClass="txbHeader text-danger" />
            </div>
            <div class="col-sm-4 headercolumns">
                <asp:Label runat="server" ID="lblSalesPerson" Text="Sales Person:" CssClass="headerlbls text-primary" />
                <asp:TextBox runat="server" ID="txbSalesPerson" CssClass="txbHeader text-danger" />
            </div>
        </div>
        <div class="row PadLeft">
            <div class="col-sm-4 headercolumns"></div>
            <div class="col-sm-4 headercolumns"></div>
            <div class="col-sm-4 headercolumns">
                <asp:Label runat="server" ID="lblRplOrderNumber" Text="Rpl Order #:" CssClass="headerlbls text-primary" ToolTip="Check to Enter Replacement Order #" />
                <asp:CheckBox runat="server" ID="ckbRplOrderNumber" AutoPostBack="true" Checked="false" ToolTip="Check to Enter Replacement Order #" />
                <asp:TextBox runat="server" ID="txbRplOrderNumber" CssClass="txbHeader text-danger" Visible="false" />
            </div>
        </div>
    </div>
我使用vb.net来编写代码,所以vb中的任何示例都非常好,但如果需要,我可以转换成它

提前谢谢

我想遍历所有文本框,检查用户是否 在处理页面之前,将数据输入其中

别这样,没必要

请改用内置的ASP.NET验证控件。RequiredFieldValidator听起来与您的需求相关。您可以将它们放在您的aspx页面中,每个字段对应一个字段,如下所示:

<asp:RequiredFieldValidator id="valSubmittedBy"
                    ControlToValidate="txbSubmittedBy"
                    Display="Static"
                    ErrorMessage="*"
                    runat="server"/> 
我建议您将每个字段放在标记中的相关字段旁边。它们提供了字段的自动客户端和服务器端验证

如果希望在一个位置显示所有验证错误,也可以将ValidationSummary控件放在表单的某个位置,以便于使用


有关更多详细信息,请参阅。

我认为使用RequiredFieldValidator可能是一条可行的道路,但这是可能的。对不起,c代码:

foreach(var c in Page.Controls)
{
    if(c is TextBox)
    {
        var txt = c as TextBox;

        if(string.IsNullOrEmpty(txt.Text)
        {
            //Your code here  
        }
    }
}

如果文本框位于其他容器控件(如面板)中,而不是页面本身的直接子控件中,则应在该容器中的控件之间循环。

您需要编写代码。如果在实现时遇到错误,请提供一个。我们不是在这里为您编写代码,也不是在这里集思广益,想出做某事的最佳方法。我们来这里是为了解决特定的编程问题。请看我的答案。问题基本上是一样的。我建议你从一个接一个的开始。然后,尝试使用FindControl。但这是真正的商业逻辑,应该在你的商务课上。谢谢你的否决票。我的印象是,这是一个董事会,你可以问一个问题,而不是因为你不知道什么而被抨击。梅森,你到底是如何为一些你不理解也找不到正确答案的东西编写代码的。有时这个网站真的很糟糕有时。。。感谢你们所有提出建议的人谢谢。。。我会去其他地方寻找答案,因为这些建议不是我想去的方向。@mbcharney我没有投反对票,我认为你的问题还可以。感谢您不一定喜欢我回答中的建议,但想知道它的缺点是什么?它基本上完成了与您建议的循环相同的工作,但使用了内置工具。最终结果将非常相似,如果不是完全相同的话,那么您不必在客户机或服务器上编写任何代码。