在web用户控件中的服务器控件客户端id显示问题?

黑暗的救赎 2005-12-24 10:16:55
在web用户控件中加入服务器控件后
客户端显示的id 自动加上了一些前缀

怎么让服务器控件在客户端显示的ID就是服务器控件的ID

在编写客户端事件的时候好麻烦!!!!!!!!
...全文
141 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
是不是 btn.ClientID == control.ClentID+btn.ID ???
————————————————————————————————————————
不是。这与control是否实现了INamingContainer接口有关,而且即使实现了也不是根据clientID来组合的,而是根据UniqueID。

另外,ClientID的算法随时可以修改,也许System.Web, Version=1.0.5000.0是这样设计的,System.Web, Version=1.0.5000.1就可能设计为另一种更好的或者面向新浏览器功能的产生clientID的方法。
黑暗的救赎 2005-12-24
  • 打赏
  • 举报
回复
Button btn = new Button();
btn.ID = "abc";
control.Add(btn); //Control

是不是
btn.ClientID == control.ClentID+btn.ID ???

saucer 2005-12-24
  • 打赏
  • 举报
回复
Button btn = new Button();
btn.ID = "abc";
Controls.Add(btn);



String scriptString = "<script language=JavaScript> function doClick() {";
scriptString += String.Format("alert(document.getElementById('{0}').value);", btn.ClientID);
scriptString += "} <";
scriptString += "/" + "script>";

RegisterStartupScript("arrayScript", scriptString);

  • 打赏
  • 举报
回复
前后台ID是不同的概念。你要求客户端ID如你所愿,唯一办法是放弃所有asp.net控件。
黑暗的救赎 2005-12-24
  • 打赏
  • 举报
回复
客户端生成的ID是固定不变的吧!不管在哪台机器上?
saucer 2005-12-24
  • 打赏
  • 举报
回复
>>>>>>怎么让服务器控件在客户端显示的ID就是服务器控件的ID

没办法的,另向客户端输出控件的ClientID,这样你就能通过document.getElementById来操作了,或者通过document.all来作循环,是客户端的控件的id是否包括你找的ID字符串
黑暗的救赎 2005-12-24
  • 打赏
  • 举报
回复
很多时候我想通过AJAX实现服务器代码的功能

中间涉及到很多JAVASCRIPT脚本,查找控件都要用ID,很不方便!
cs代码写脚本代码太麻烦,调试也麻烦
黑暗的救赎 2005-12-24
  • 打赏
  • 举报
回复
如果都在服务器通过ClientID 写客户端处理事件,编写客户端脚本太麻烦了!

有什么方法能通过服务器控件ID就确定客户端ID
这样在客户端写脚本就容易了方便了
  • 打赏
  • 举报
回复
ClientID是非常方便的设计。关键在于你在理解asp.net之前就断定自己才是最正确的。
黑暗的救赎 2005-12-24
  • 打赏
  • 举报
回复
在客户端遇到这样的问题,就是麻烦??

!!!!!
第1章 服务器控件概述及开发环境部署 .1 1.1 自定义服务器控件 1 1.2 服务器控件在软件开发过程的作用 1 1.3 在控件开发提升自己 2 1.4 可继承控件基类介绍 2 1.5 运行一个简单的控件 7 1.5.1 开发一个简单控件 7 1.5.2 部署和运行 11 1.6 控件生命周期 12 1.6.1 概述 12 1.6.2 用代码跟踪控件生命周期过程 14 1.7 本章总结 17 第2章 服务器控件开发的调试技术 18 2.1 预置代码示例 18 2.2 调试页面服务端代码 19 2.3 服务器控件的调试 20 2.3.1 运行模式下的调试方法 20 2.3.2 设计模式下的调试方法 20 2.4 javascript脚本调试方法 22 2.4.1 调试页面的javascript脚本(方法一) 22 .2.4.2 调试页面的javascript脚本(方法二) 23 2.4.3 调试非嵌入式javascript脚本文件 23 2.4.4 调试嵌入式javascript脚本资源文件 24 2.4.5 高效率调试的技巧 24 2.5 ajax library对javascript调试支持 26 2.6 本章总结 26 第3章 从零开始开发服务器控件 27 3.1 选择基类 27 3.2 控件呈现顺序 28 3.3 render呈现控件的几种方式 30 3.3.1 使用htmltextwriter类输出 30 3.3.2 直接输出html标签 32 3.3.3 使用服务器控件的rendercontrol方法 33 3.4 addattributestorender方法 34 3.5 createchildcontrols方法 35 3.6 inamingcontainer接口 36 3.7 实现复合控件 38 3.7.1 createchildcontrols方法 39 3.7.2 childcontrolscreated属性 39 3.7.3 ensurechildcontrols方法 39 3.7.4 recreatechildcontrols方法 39 3.7.5 controls属性 40 3.7.6 hascontrols方法 40 3.7.7 hasevents方法 40 3.7.8 findcontrol方法 41 3.7.9 实现复合控件示例 41 3.8 常用开发技巧 51 3.8.1 designmode属性 51 3.8.2 屏蔽基类控件的属性 52 3.8.3 page.request.browser属性 53 3.8.4 设置控件id规范 53 3.8.5 增强findcontrol功能 54 3.8.6 映射服务端控件值到客户端 55 3.8.7 禁止派生自compositecontrol的控件创建子控件 56 3.8.8 使用createchildcontrols的注意事项 56 3.8.9 不要误解设计元属性defaultvalue 57 3.8.10 在render方法利用基类资源 57 3.8.11 条件编译&条件属性 60 3.9 本章总结 61 第4章 服务器控件属性 62 4.1 控件属性的作用 62 4.1.1 系统属性 62 4.1.2 自定义属性 62 4.2 简单属性 63 4.3 属性的设计时特性 64 4.4 复杂属性 67 4.4.1 概述 67 4.4.2 复杂属性的几种标记形式 67 4.4.3 深入研究——复杂属性分析器 79 4.5 深入研究——定制自己的属性编辑器 85 4.5.1 系统属性编辑器 85 4.5.2 定制属性编辑器 91 4.6 类型转换器 126 4.6.1 系统类型转换器 126 4.6.2 定制自己的类型转换器 128 4.7 实现自定义属性 138 4.8 本章总结 145 第5章 事件和数据回发机制 146 5.1 控件事件和数据回发概述 146 5.1.1 事件及其意义 146 5.1.2 数据回发机制 147 5.2 事件和数据回发机制的实现 148 5.2.1 客户端回传事件接口ipostbackeventhandler 148 5.2.2 客户端回发/回调揭密 150 5.2.3 回传数据处理接口ipostbackdatahandler 153 5.2.4 正确处理继承基类控件的事件 159 5.2.5 扩展kingtextbox控件功能(kingtextboxcanpostevent控件) 161 5.3 复合控件的事件处理机制

62,040

社区成员

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

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

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

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