求js取服务器控件id的问题?

「已注销」 2007-11-10 12:06:52
有masterpage页时,服务器控件id生成html时会变
我在.aspx页面可以这样去<%=txtUserName.ClientID>

但放到单独的js文件里,这样<%=txtUserName.ClientID>
就不行,因为我们一个页面用到了很多js,有没有方法能够在单独的js取到<%=txtUserName.ClientID>
...全文
121 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
fcuandy 2007-11-10
  • 打赏
  • 举报
回复
重构你的js
将你的js与成类.
这样就可以了.
给你举个例子.
old.js

var x=document.getElemenyById("textbox1");
function alt()
{
alert(x.value);
}

这样的js,无法通用,除非每个页面要处理的textbox的ID都是textbox1

重构这个js
function myObj
{
this.htmlElement=null;
this.alt=function()
{
alert(this.htmlElement.value);
}
}
那么在html页面调用这个js时
var m=new myObj;
m.htmlElement=document.getElementById("<%=textbox1.ClientID%>");
m.alt();


随手敲的,不排除手误
honey52570 2007-11-10
  • 打赏
  • 举报
回复
O_O
fcuandy 2007-11-10
  • 打赏
  • 举报
回复
function myObj()
这里有个括号,我少打了.
「已注销」 2007-11-10
  • 打赏
  • 举报
回复
重构这个js
function myObj
{
this.htmlElement=null;
this.alt=function()
{
alert(this.htmlElement.value);
}
}
那么在html页面调用这个js时
var m=new myObj;
m.htmlElement=document.getElementById("<%=textbox1.ClientID%>");
m.alt();


随手敲的,不排除手误
这个不对呀,我用了,有错误
fcuandy 2007-11-10
  • 打赏
  • 举报
回复
4楼朋友, 楼主的意思是他的js文件是个单独的文件,不是嵌在页面中的代码.

你的方法不符题.
fcuandy 2007-11-10
  • 打赏
  • 举报
回复
直接调不可能.
要么就将 old.js改成 一个.aspx文件.
动态输出js,被别的页面调用.
比如

old.aspx
<%
string s=Request["clientID"].ToString();
%>
var x=<%=s%>;
alert(x);



调用的地方
<script type="text/javascript" src="old.aspx?clientID=<%=textBox1.ClientID%>"></script>


对比两种方式,仍推荐重构js的做法.
ChengKing 2007-11-10
  • 打赏
  • 举报
回复
使用Page.ClientScript.RegistArray('array',"'" + this.Control.ClientID + "'");

再在js中取:
var ele = document.getElementById(array[0]);
「已注销」 2007-11-10
  • 打赏
  • 举报
回复
我要在old.js页面中直接调用<%=textbox1.ClientID%>
qq22345111 2007-11-10
  • 打赏
  • 举报
回复
m.htmlElement=document.getElementById("<%=textbox1.ClientID%>");
第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,047

社区成员

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

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

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

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