问题描述
Asp.Net的aspx页面得控件ID是否可以像sting字符串一样实现拼接。
解决方案
解决方案二:
可以。在cs后台代码中动态生成添加控件,ID就可以拼接。
解决方案三:
在aspx上使用的asp.net服务器控件的ID,是aspx编译器的一个根本特性,它用这个来进行代码生成。因此其ID是固定的,是不可编程拼凑的。但是在页面对象已经初始化之后动态追加的服务器控件,你可以自由地设置ID,例如写protectedvoidPage_Load(objectsender,EventArgse){LinkButtonlkbtn=newLinkButton();lkbtn.ID="LinkButton1";Panel1.Controls.Add(lkbtn);.........
但是无论如何你要知道一点,服务器控件的ID跟html标签的id是两回事。不要把服务器控件的ID看作是你从客户端html源代码中看到的id,那个是服务器控件的ClientID,而不是服务器空间的ID。
解决方案四:
控件ID的值,就是个字符串,可以拼接的,例如intI=1;TextBoxmyT=(TextBox)Page.FindControl("TextBox"+i.ToString());这个ID就是拼接的
解决方案五:
引用2楼以专业开发人员为伍的回复:
在aspx上使用的asp.net服务器控件的ID,是aspx编译器的一个根本特性,它用这个来进行代码生成。因此其ID是固定的,是不可编程拼凑的。但是在页面对象已经初始化之后动态追加的服务器控件,你可以自由地设置ID,例如写protectedvoidPage_Load(objectsender,EventArgse){LinkButtonlkbtn=newLinkButton();lkbtn.ID="LinkButton1";Panel1.Controls.Add(lkbtn);.........但是无论如何你要知道一点,服务器控件的ID跟html标签的id是两回事。不要把服务器控件的ID看作是你从客户端html源代码中看到的id,那个是服务器控件的ClientID,而不是服务器空间的ID。
好的,谢谢了,代码很详细
解决方案六:
ID在asp.net中具有核心地位。例如你页面上有一个ID为btn1的Button,你把它的颜色动态改变了之后,页面即使是不断回发刷新,其颜色也还是自动保持最后的。这就是因为在页面的ViewState中使用其ID来标记了对应的Button,asp.net会在每一次创建Page对象时都去将这个颜色重新填回给相同ID的Button。同样地,假设你有一个GridView绑定了100行数据,其模板中也有一个ID为btn1的Button,那么你可以为页面上这100个同时叫做btn1的Button设置不同的Text、ForeColor等等属性,当asp.net页面任何时候回发刷新时,asp.net重建完毕整个GridView之后都会遍历每一行、找到每一行中名字叫做btn1的Button去重新填回ViewState中记录的属性。用不着你自己去写什么“隐藏域”去手动保存页面上的上万个状态信息,asp.net会自动给保存所有服务器控件的状态信息,靠的就是ID(不同NamingContainer层次下的服务器控件可以有相同的ID,同一个NamingContainer内的不同控件则不能有重复的ID)。所以,首先搞懂ID跟ClientID的区别,就不会去乱设置ID。