繁体   English   中英

如何在外部javascript文件中获取asp.net客户端ID

[英]How to get asp.net client id at external javascript file

当我使用嵌入式javascript 函数时,我可以使用以下代码获取元素的客户端ID

document.getElementById('<%=buttonXXX.ClientID%>' )

但是现在我使用外部javascript文件进行缓存和更快的渲染,这段代码不再用于获取元素的客户端ID ,它给出了错误。

如何使用asp.net 2.0,netframework 3.5,c#,iis 7.5外部javascript文件中获取元素的客户端ID

我可以提出两种方法。

第一种方式

在调用javascript之前定义变量,在可编译的.aspx文件中。

var ButtonXXXID = <%=buttonXXX.ClientID%>
// and now include your javascript and use the variable ButtonXXXID

第二种方式

在外部javascript文件中,将您的代码编写为:

function oNameCls(ControlId1) {

    this.ControlId1 = ControlId1;

    this.DoYourWork1 = function() {
        // use the control id.
        // this.ControlId1
    }   
}

并称呼你的行为。

<script>
    // init - create
    var <%=this.ClientID%>MyCls = new oNameCls('<%=Control1.ClientID%>');
    // do your work
    <%=this.ClientID%>MyCls.DoYourWork1();
</script>

以这种方式调用操作可防止从同一页面上的其他控件使用相同操作覆盖一个控件中的一个操作。

您可以使用类选择器。 jquery可能会大大简化你的生活。 所以你可以在控件中应用一个特殊的类:

<asp:LinkButton ID="foo" CssClass="foo" runat="server" Text="foo" />

在DOM准备就绪后,您可以在外部javascript文件中使用类选择器引用该按钮:

$(function() {
    var fooButton = $('.foo');
});

在脚本文件中( test.js

function test(ControlID1) {
  var controlId = document.getElementById(ControlID1);
  controlId.onchange = function () {        
    alert(controlId.value);
    }
  }

.aspx文件中

<script type="text/javascript">
   var callTest = test('<%=txtSelected.ClientID%>');
   window.onload = callTest;
</script>

当我没有其他更好的选择时,我在.js文件中使用以下代码。

$("[id$='buttonXXX'])

我知道旧问题,但是使用jquery你可以使用这个方法:

Aspx文件

<asp:Button ID="btnCalculate" ClientID="btnCalculate" runat="server" />

外部js文件

$("[ClientID='btnCalculate']").

https://lanitdev.wordpress.com/2009/06/08/extending-jquery-to-select-asp-controls/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM