我要做的是基本上创建一种方法来验证所有文本框是否已满。因此,如果我在一个页面上有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>
答案 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
}