页面套用一个母版页的情况下页面中使用getElementsByName

lsd123 2009-03-18 04:06:09
<asp:RadioButtonList ID="RdoCaseStyle" runat="server" RepeatDirection="Horizontal" 
RepeatLayout="Flow" Width="100%">
<asp:ListItem Value="Case1" Selected="True">表1</asp:ListItem>
<asp:ListItem Value="Case2">表2</asp:ListItem>
<asp:ListItem Value="Case3">表3</asp:ListItem>
<asp:ListItem Value="Case4">表4</asp:ListItem>
</asp:RadioButtonList>


var arrControls = document.getElementsByName("RdoCaseStyle");


没套用母版页时,上面的JS能取到所有的ListItem ,

套用母版页后name变成name="ctl00$MainPlaceHolder$RdoCaseStyle"了,
上面的JS就取不到了,

如何修改?指点下
...全文
137 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
蝶恋花雨 2009-03-20
  • 打赏
  • 举报
回复
学习了。
lsd123 2009-03-19
  • 打赏
  • 举报
回复
谢谢Sp1234,问题解决了

ID是设计的时候所指定的ID。

ClientID是当这个控件生成到客户端页面时候,需要在客户端访问时候用的。

UniqueID是当需要参与服务端回传的时候用的。

备注:当控件是子控件的时候(例如在用户控件中的Button),ClientID在HTML页面中是作为控件的ID属性,UniqueID是作为控件的Name属性,如果不是子控件,那么ClientID和UniqueID是相同的

例如:

MyControl1是一个用户控件,里面包含一个ID为Button1的按钮,把MyControl1放在一个页面中运行,下面是其页面的HTML代码

<input type="submit" name="MyControl1:Button1" value="Button" id="MyControl1_Button1" />

ClientID:MyControl1_Button1
UniqueID:MyControl1:Button1

补充:当要编写用户控件中一个控件的客户端事件代码时,如果想在用户控件内编写必须要获取该控件的ClientID。
erpao_ywg 2009-03-18
  • 打赏
  • 举报
回复
运行后,点查看源代码,看一下这时的控件名字就知道了,ctl00$ContentPlaceHolder1$ RdoCaseStyle
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lsd123 的回复:]
引用 1 楼 kongwei521 的回复:
document.getElementsByName(" <%=RdoCaseStyle.ClinetID%>");



这个用过了,不行好像
[/Quote]

做法虽然初级,但是方向总归是对的,思路比那些看看页面运行然后硬编码设计源代码要可信多了。

实际上,可以写:
document.getElementsByName(" <%=RdoCaseStyle.UniqueID%>"); 
理解 ClientID 跟 UniqueID 的区别只需要一点细心就可以了,编程思路基本上一样。
lsd123 2009-03-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lovexiaoxiao 的回复:]
document.getElementsById(" ctl00$ContentPlaceHolder1$ <%=RdoCaseStyle.ClinetID%>");


ok 不@@@@@@@@@@@@@@@@@@@@@@@
[/Quote]

这样写是不是太不灵活了,不可能一一去查看生成的页面源代码后来修改类
bj890 2009-03-18
  • 打赏
  • 举报
回复
document.getElementsById(" ctl00$ContentPlaceHolder1$<%=RdoCaseStyle.ClinetID%>");



ok 不@@@@@@@@@@@@@@@@@@@@@@@
yzbsd 2009-03-18
  • 打赏
  • 举报
回复
document.getElementsById(" <%=RdoCaseStyle.ClinetID%>");
orain 2009-03-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 kongwei521 的回复:]
document.getElementsByName(" <%=RdoCaseStyle.ClinetID%>");
[/Quote]
还要把下划算替换成 $ 符
document.getElementsByName("<%=RdoCaseStyle.ClientID%>".replace(/_/g, '$'));
zhxhdean 2009-03-18
  • 打赏
  • 举报
回复
document.getElementsByName("查看源代码后的id");
lsd123 2009-03-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 kongwei521 的回复:]
document.getElementsByName(" <%=RdoCaseStyle.ClinetID%>");

[/Quote]

这个用过了,不行好像
蝶恋花雨 2009-03-18
  • 打赏
  • 举报
回复
document.getElementsByName("<%=RdoCaseStyle.ClinetID%>");

62,267

社区成员

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

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

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

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