asp.net 根据ID 获取控件
已知页面中又一个id为“abc”的控件他的基类是webcontrol请问怎样获得这个控件比如JS的getElementById(“abc”)之类的我看了findcontr...
已知页面中又一个id为“abc”的控件他的基类是webcontrol
请问怎样获得这个控件
比如JS的getElementById(“abc”)之类的
我看了findcontrol()函数
他不是很好用
因为他只能找下一级的
但是网页元素恐怕要又N级 作循环的话太慢了
请问又什么更好的办法么?
在线等。 展开
请问怎样获得这个控件
比如JS的getElementById(“abc”)之类的
我看了findcontrol()函数
他不是很好用
因为他只能找下一级的
但是网页元素恐怕要又N级 作循环的话太慢了
请问又什么更好的办法么?
在线等。 展开
10个回答
展开全部
用这个遍历试试,表单ID就是你的from的ID 比如说 from1
控件类型就是你那个abc的类型,例如 TextBox
foreach (Control control in this.表单ID.Controls)
{
if (control.GetType().ToString() == "System.Web.UI.WebControls.控件类型")//
{
if (((控件类型)control).ID == "abc")
{
//得到控件
}
}
}
控件类型就是你那个abc的类型,例如 TextBox
foreach (Control control in this.表单ID.Controls)
{
if (control.GetType().ToString() == "System.Web.UI.WebControls.控件类型")//
{
if (((控件类型)control).ID == "abc")
{
//得到控件
}
}
}
展开全部
Page本身就是一个容器!但是这个容器很大!要遍历的话还不一定能找到!
可以在该控件放置一个另外的容器!然后再去此容器中遍历寻找控件!
不过哥们你这问题不对头吧!已经名字了,在cs类中直接名字不就获取到了嘛!
JS中自己getElementById不也行了么?
可以在该控件放置一个另外的容器!然后再去此容器中遍历寻找控件!
不过哥们你这问题不对头吧!已经名字了,在cs类中直接名字不就获取到了嘛!
JS中自己getElementById不也行了么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用这个遍历试试,表单ID就是你的from的ID
比如说
from1
控件类型就是你那个abc的类型,例如
TextBox
foreach
(Control
control
in
this.表单ID.Controls)
{
if
(control.GetType().ToString()
==
"System.Web.UI.WebControls.控件类型")//
{
if
(((控件类型)control).ID
==
"abc")
{
//得到控件
}
}
}
比如说
from1
控件类型就是你那个abc的类型,例如
TextBox
foreach
(Control
control
in
this.表单ID.Controls)
{
if
(control.GetType().ToString()
==
"System.Web.UI.WebControls.控件类型")//
{
if
(((控件类型)control).ID
==
"abc")
{
//得到控件
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果只有一级的话,在当前控件是findcontrol是可以的
例如:在DataGrid 的行中,找所有的 id为”chk1“ 的checkbox 控件
foreach(DataGridItem oDataItem in this.DataGrid1.Items)
{
chkExport=(CheckBox)oDataItem.FindControl("Chk1");
if(chkExport.Checked)
{
sID = ((Label)(oDataItem.FindControl("Label1"))).Text;
strMsg1.Append(sID+"<br>");
}
}
这是简单一点:GridView1 当前行中找
string name = ((TextBox)(this.GridView1.Rows[e.RowIndex].Cells[0].Controls[0])).Text;
例如:在DataGrid 的行中,找所有的 id为”chk1“ 的checkbox 控件
foreach(DataGridItem oDataItem in this.DataGrid1.Items)
{
chkExport=(CheckBox)oDataItem.FindControl("Chk1");
if(chkExport.Checked)
{
sID = ((Label)(oDataItem.FindControl("Label1"))).Text;
strMsg1.Append(sID+"<br>");
}
}
这是简单一点:GridView1 当前行中找
string name = ((TextBox)(this.GridView1.Rows[e.RowIndex].Cells[0].Controls[0])).Text;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//递归遍历控件,des为对象引用
protected void FindId(Control temp, string _id, Control des )
{
if (temp.Controls.Count == 0)
{
if (temp.ID == _id )
des = temp;
return;
}
else
{
for (int i = 0; i < temp.Controls.Count; i++)
{
FindId(temp.Controls[i], _id, des);
}
}
}
调用:FindId( this.Page, "id_name", control_ref );
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询