如何防止加了模板后控件的ID发生变化

baizqlogin 2010-11-18 10:24:02
在不用JS的情况下如何防止加了模板后控件的ID发生变化
...全文
176 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
chen_ya_ping 2010-11-18
  • 打赏
  • 举报
回复
我觉得没有办法,而且这些变化的ID都是有规律的。不是很难找到
li309000011 2010-11-18
  • 打赏
  • 举报
回复
这个到HTML里面肯定是要变哦

如果要用的话 可以用<%= ObjectList2.ClientID %>去取

这个就是他到页面里的客户端ID了 就可以用JS去操作了
baizqlogin 2010-11-18
  • 打赏
  • 举报
回复
<mobile:ObjectList ID="ObjectList1" Runat="server" CommandStyle-StyleReference="subcommand"
LabelStyle-StyleReference="title">
<DeviceSpecific>
<Choice>
<ItemTemplate>
<mobile:ObjectList ID="ObjectList2" Runat="server" CommandStyle-StyleReference="subcommand"
LabelStyle-StyleReference="title">
..........................................................
</mobile:ObjectList>
</ItemTemplate>
</Choice>
</DeviceSpecific>
</mobile:ObjectList>
不明白可以看看代码,我就是要后台得到objectlist2谁有办法
天下在我心 2010-11-18
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 baizqlogin 的回复:]
问题的关键在于前台不能用JS

后台又得不到objectlist2控件,所以更加没办ObjectList2.UniqueID了
[/Quote]
?????
baizqlogin 2010-11-18
  • 打赏
  • 举报
回复
问题的关键在于前台不能用JS

后台又得不到objectlist2控件,所以更加没办ObjectList2.UniqueID了
qiandongwu 2010-11-18
  • 打赏
  • 举报
回复
后台ObjectList2.UniqueID就行了,如果是前台js就用<%=ObjectList2.ClientID%>得到
baizqlogin 2010-11-18
  • 打赏
  • 举报
回复
其实我就是想找到objectlist2
baizqlogin 2010-11-18
  • 打赏
  • 举报
回复
不是得用findcontrolbyid("id")来获取吗?
baizqlogin 2010-11-18
  • 打赏
  • 举报
回复
不太明白。是否可以做个实例?
qiandongwu 2010-11-18
  • 打赏
  • 举报
回复
防止ID变化不知道,但是你可以得到变化后的ID啊,客户端用ClientID,后台用UniqueID获取变化后的ID就行了
baizqlogin 2010-11-18
  • 打赏
  • 举报
回复
datatable dt=.....

for(int i=0;i<dt.Rows.count;i++)
{
objectlist obj=objectlist1.findcontrol("objectlist2") as objectlist;
obj.datasource=data(dt.rows[i]["name"]);
obj.databind();
}
baizqlogin 2010-11-18
  • 打赏
  • 举报
回复
我只是想给objectlist2绑定数据源
baizqlogin 2010-11-18
  • 打赏
  • 举报
回复
clientId 不用jS是不是们办法获取?
  • 打赏
  • 举报
回复
“objectlist2的ID”?它只是放在模板中的而已,在运行时asp.net根据模板来创建许多实例,每一个中间都有一个objectlist2,而你说“objectlist2”自己就不知道说的是哪一个实例吧。
itrefer 2010-11-18
  • 打赏
  • 举报
回复
别用服务器控件
  • 打赏
  • 举报
回复
[Quote=引用楼主 baizqlogin 的回复:]
在不用JS的情况下如何防止加了模板后控件的ID发生变化
[/Quote]

服务器控件的ID本来就不是客户端ID,控件的ClientID属性才是。如果服务器控件ID不变,那么你就肯定不懂把控件放到控件、放到模板(ITemplate)里边,因为这些控件实例会在页面上有多个(甚至上百个),ID是不可能重复的。
baizqlogin 2010-11-18
  • 打赏
  • 举报
回复
代码是这样的:
<mobile:ObjectList ID="ObjectList1" Runat="server" CommandStyle-StyleReference="subcommand"
LabelStyle-StyleReference="title">
<DeviceSpecific>
<Choice>
<ItemTemplate>
<mobile:ObjectList ID="ObjectList2" Runat="server" CommandStyle-StyleReference="subcommand"
LabelStyle-StyleReference="title">
..........................................................
</mobile:ObjectList>
</ItemTemplate>
</Choice>
</DeviceSpecific>
</mobile:ObjectList>

我想获取到objectlist2的ID,如何获取?
ycproc 2010-11-18
  • 打赏
  • 举报
回复
听不是太懂
LZ是想做那种换模版的 网站吧
mimangshamo 2010-11-18
  • 打赏
  • 举报
回复
ID是肯定会变的,要不微软自己都找不到控件了。
你具体遇到了什么问题,同一个问题总是有不同的解决思路的
symbol_bc 2010-11-18
  • 打赏
  • 举报
回复
这不可能吧,之所以加上系统生成的部分,就是因为害怕出现id重复的状况,再说他生成的也是有规律的啊
完全可以操作。

62,272

社区成员

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

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

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

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