asp.net遍历HTML控件

jiashu912387 2009-03-30 05:35:51
我想在代码层遍历一下页面上所有<input type="text" id="id" name="id" runat="server" /> 控件 大家注意下 这个runat="server" 可以不? 请教
...全文
294 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiashu912387 2009-03-31
  • 打赏
  • 举报
回复
谢谢 wuyq11 和koukoujiayi 结贴
wuyq11 2009-03-30
  • 打赏
  • 举报
回复
koukoujiayi 2009-03-30
  • 打赏
  • 举报
回复
赋值:
foreach (Control t in this.form1.Controls)
{
if (t.GetType().ToString() == "System.Web.UI.HtmlControls.HtmlInputText")
((HtmlInputText)FindControl(t.ID)).Value = "aaa";

}
阿非 2009-03-30
  • 打赏
  • 举报
回复

if (txt != null)
{
flag++;
//这里你可以取值赋值
}

阿非 2009-03-30
  • 打赏
  • 举报
回复

protected int flag = 0;

protected void Page_Load(object sender, EventArgs e)
{
GetTextBox(Page);
Response.Write(flag.ToString()+" 个");
}

private void GetTextBox(Control c)
{
if (c.Controls.Count > 0)
{
for (int i = 0; i < c.Controls.Count; i++)
{
GetTextBox(c.Controls[i]);
}
}

HtmlInputText txt = c as HtmlInputText;
if (txt != null)
{
flag++;
}
}
jiashu912387 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 Sandy945 的回复:]
哪个不是正解,TextBox 是服务器端的textbox
你想判断的是System.Web.UI.HtmlControls.HtmlInputText
4楼的类型 是正确的,不过判断的只是form 的子控件中的,没判断子控件的子控件
[/Quote]
可以给我个正解吗? 我很急 我想取值和赋值! 谢谢
jiashu912387 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 koukoujiayi 的回复:]
如果是runat="server"可以如下:

int n = 0;
foreach (Control t in this.form1.Controls)
{
if (t.GetType().ToString() == "System.Web.UI.HtmlControls.HtmlInputText")
n++;
}
Response.Write("有"+n.ToString()+"input");
[/Quote]

恩 你的可以取到有多少个 但是我想取值 和赋值怎么办呢?
阿非 2009-03-30
  • 打赏
  • 举报
回复
哪个不是正解,TextBox 是服务器端的textbox
你想判断的是System.Web.UI.HtmlControls.HtmlInputText
4楼的类型 是正确的,不过判断的只是form 的子控件中的,没判断子控件的子控件
jiashu912387 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jiangshun 的回复:]
引用 1 楼 jasondct 的回复:
当然可以,这样这个控件就变成了服务器控件。
遍历窗体上的所有checkbox和textbox控件
foreach (Control myc in form1.Controls)
{
if (myc is TextBox)
{
TextBox tb = (TextBox)myc;
tb.Text = string.Empty;
}
if (myc is CheckBox)
{
CheckBox cb…
[/Quote]

真的是正解吗? 为什么我实验是有问题的啊 我的是<input type="text"/>啊 text 可以这样吗?
koukoujiayi 2009-03-30
  • 打赏
  • 举报
回复
如果是runat="server"可以如下:

int n = 0;
foreach (Control t in this.form1.Controls)
{
if (t.GetType().ToString() == "System.Web.UI.HtmlControls.HtmlInputText")
n++;
}
Response.Write("有"+n.ToString()+"input");
jiangshun 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jasondct 的回复:]
当然可以,这样这个控件就变成了服务器控件。
遍历窗体上的所有checkbox和textbox控件
foreach (Control myc in form1.Controls)
{
if (myc is TextBox)
{
TextBox tb = (TextBox)myc;
tb.Text = string.Empty;
}
if (myc is CheckBox)
{
CheckBox cb = (CheckBox)myc;

[/Quote]

正解!
jiashu912387 2009-03-30
  • 打赏
  • 举报
回复
2楼真的可以吗? 我的是text控件啊!
jasondct 2009-03-30
  • 打赏
  • 举报
回复
当然可以,这样这个控件就变成了服务器控件。
遍历窗体上的所有checkbox和textbox控件
foreach (Control myc in form1.Controls)
{
if (myc is TextBox)
{
TextBox tb = (TextBox)myc;
tb.Text = string.Empty;
}
if (myc is CheckBox)
{
CheckBox cb = (CheckBox)myc;
cb.Checked = false; //不被选中
}
}

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧