views:

48

answers:

3

Ok so this is a snippet of my aspx file, I am trying to call a "hello world" function from the 'test.js' file. This is obviously not working, could someone please recommend me a good way of doing it?

<asp:ScriptManager ID="ScriptManager1" runat="server">
    <Scripts>
        <asp:ScriptReference Path="\App_JavaScript\test.js" />
    </Scripts>
</asp:ScriptManager>
<asp:Button ID="timebutton" runat="server" Text="clickme" OnClick="javascript:getData();" /><br />
+4  A: 

OnClientClick

<asp:Button ID="timebutton" runat="server" Text="clickme" OnClientClick="javascript:getData();" />
Yuriy Faktorovich
i am not worthy. i shall delete myself.
Sky Sanders
A: 

Use jQuery to assign the function to the click event of the button.

    <script type="text/javascript" src="\App_JavaScript\test.js"></script>
    <script type="text/javascript" src="jQuery.js"></script>

    <script>

    $(document).ready(function(){
        $('#timeButton').click(getData);
        //Use below instead if you are using Master Pages
        //$('#<%= timeButton.ClientID %>').click(getData);
    });

    </script>

<asp:Button ID="timebutton" runat="server" Text="clickme" />
Rezler
This will not work. The rendered ID of a server side button is not what you place in the ID field.
Yuriy Faktorovich
Please explain...
Rezler
@Rezler: Unless you're talking about .NET 4.0, this will not work. You still need to use the ClientID and not just #timebutton
Yuriy Faktorovich
If the web form is NOT inside a master page, then will the client ID not be the same as the ID specified? It's been a while since I've worked without master pages so I could be mistaken.
Rezler
A: 

If you need a postback to occur you can also use ScriptManager.RegisterClientScriptBlock

Jonathan S.