如何检查用户是否填充了页面中的所有元素?

时间:2014-04-04 11:41:36

标签: c# asp.net webforms

<textarea questn-id="123" />
<td questn-id="234"/>

我有所有textarea的quest-id和字符串列表中的td。如何检查textarea和td是否填写了c#。

我已经使用htmlagility包获得了所有元素的任务ID,并将其存储在字符串列表中,现在我想查看所有字段是已满还是空。有人可以帮帮我吗?

4 个答案:

答案 0 :(得分:1)

正如他们所说,你必须添加runat =&#34; server&#34;对元素 您可以使用linq在服务器端搜索它们:

var controls = Page.Controls.OfType<WebControl>().Where(x => string.IsNullOrEmpty(x.Attributes["questn-id"]));

然后你将拥有没有填充questn-id的控件

答案 1 :(得分:0)

如果你的标记是这样的:

<textarea questn-id="123" id="txtarea" runat="server" />
<td questn-id="234" id="tdId" runat="server" />

你可以这样做:

if(txtarea.Value == "")
{
  // it is empty
}
else{
 // it is not empty. It has some value.
}

答案 2 :(得分:0)

如果您要检查后面的代码,那么为元素textarea添加runat="server"并通过ID 访问它。

<textarea questn-id="123" id="txtarea" runat="server" />

if (string.IsNullOrEmpty(txtarea.Text))
{
   Console.WriteLine("textarea is empty");
}

答案 3 :(得分:0)

前言:我通过转换器运行了一些VB代码并根据需要进行了更改。所以这可能在语法上不正确,但你应该知道如何使用HtmlAgilityPack。

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(stringContainingYourHtml);

foreach (HtmlAgilityPack.HtmlNode txt in doc.DocumentNode.SelectNodes("//textarea")) {
    if ((txt.Attributes("questn-id") != null) && ! String.IsNullOrEmpty(txt.Attributes("questn-id").Value) {
        string txtVal = txt.Attributes("questn-id").Value.ToLower();
        // do whatever you want to do for validation here.

}

}