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

前端 未结 5 1512
暖寄归人
暖寄归人 2020-11-28 12:58

When I use embedded javascript functions I can get client id of elements with this code:

document.getElementById(\'<%=buttonXXX         


        
相关标签:
5条回答
  • 2020-11-28 13:15

    I know old question but with jquery u can use this approache:

    Aspx file

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

    external js file

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

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

    0 讨论(0)
  • 2020-11-28 13:33

    I can suggest 2 ways.

    First way

    define your variables before call the javascript, inside the .aspx file that can be compiled.

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

    Second way

    in the external javascript file, write your code as:

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

    And call your actions like.

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

    calling the action this way you prevent overwrite one action from one control with the same action from other controls on the same page.

    0 讨论(0)
  • 2020-11-28 13:34

    in script file (test.js)

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

    in .aspx file

    <script type="text/javascript">
       var callTest = test('<%=txtSelected.ClientID%>');
       window.onload = callTest;
    </script>
    
    0 讨论(0)
  • 2020-11-28 13:37

    I use the following code in my .js file, when I have no other better choice.

    $("[id$='buttonXXX'])
    
    0 讨论(0)
  • 2020-11-28 13:41

    You could use a class selector. jquery might greatly simplify your life here. So you could apply a special class to the control:

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

    and in your external javascript file once the DOM is ready you could reference the button using a class selector:

    $(function() {
        var fooButton = $('.foo');
    });
    
    0 讨论(0)
提交回复
热议问题