大家好,为什么无效呢<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
</div>
</form>
</body>
foreach (Control c in this.Controls)
{
if (c.GetType() == typeof(TextBox))
{
TextBox t = (TextBox)c;
t.Text = "test";
}
}
foreach (System.Web.UI.Control childControl in Page.Controls)
{
if (childControl is TextBox)
{
((TextBox)childControl).Text = "test";
}
} 放在Page_Load里、Button事件里,两个遍历都没有用啊,TextBox的值都是空的,为什么呢?
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
</div>
</form>
</body>
foreach (Control c in this.Controls)
{
if (c.GetType() == typeof(TextBox))
{
TextBox t = (TextBox)c;
t.Text = "test";
}
}
foreach (System.Web.UI.Control childControl in Page.Controls)
{
if (childControl is TextBox)
{
((TextBox)childControl).Text = "test";
}
} 放在Page_Load里、Button事件里,两个遍历都没有用啊,TextBox的值都是空的,为什么呢?
{
for (int i = 0; i < control.Controls.Count; i++)
{
if (control.Controls[i].GetType().Name.ToLower() == "textbox")
{
TextBox tb = (TextBox)control.Controls[i];
tb.Text = "";
}
}
}
object[] txt = new object[] { TextBox1, TextBox2, TextBox3 };
for (int i = 1; i < 4; i++)
{
((TextBox)txt[i - 1]).Text = "test" + i.ToString();
}
运行后3个TextBox显示:test1,test2,test3
function funInsertPerson(){
var myArray = new Array();
var list=document.getElementById("form1").getElementsByTagName("input");
for(var i=0;i<list.length && list[i];i++){
//判断是否为文本框
if(list[i].type=="text"){
list[i].value="";
}
}
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" /> </div>
foreach (Control c in this.Div1.Controls)
{
//Response.Write(c.GetType().ToString());
if (c.GetType() == typeof(TextBox))
{
TextBox t = (TextBox)c;
t.Text = "test";
}
}
{
if (c.GetType().ToString() == "System.Web.UI.WebControls.TextBox")
{
((TextBox)c).Text = "test";
}
}
Page.Controls和form1.Controls获取的控件不相同,Page.Controls并能获取到form1内的控件,
你可以这样测试一下
string str2="";
foreach (Control c in form1.Controls)//这里切换Page和form1
{
string str = c.GetType().ToString();
if (c.GetType() == typeof(TextBox))
{
TextBox t = (TextBox)c;
t.Text = "test";
}
if(str2==""){str2 = str;}else{str2+=","+str}
}
在页面放一个LABLE,最后给lable设一个TEXT属性,看看都便利什么。
{
Response.Write(ctl.GetType().Name+",");
if(ctl.GetType().Name=="TextBox")
{
TextBox tb =new TextBox();
tb=(TextBox)this.FindControl(ctl.ID);
tb.Text = "ok";
// Response.Write(" <script>alert('" + tb=.Text+ "的值为空。'); </script>");
}
}测试OK.
if(control.hascontrols)
{
//还需再遍历....
}惭愧 非高人!~
请楼主加上Text属性试试