When you create an HTML object such as HTML Button add runat="server" as attribute, ASP .NET will create a javascript function __doPostBack. You can use this function to call server object.
<html>
<body>
<form id="form1" runat="server">
<asp:Label ID="lblCounter" runat="server" Text="Counter:"></asp:Label>
<br />
<br />
<input id="btnAddCounter" type="button" value="Add Counter" runat="server" />
<br />
<br />
<a onclick="__doPostBack('btnAddCounter','')" style="cursor: pointer;">Invoke Postback (it's just like push the Button)</a>
</form>
</body>
</html>
the code behind:
Partial Class test_testpostback
Inherits System.Web.UI.Page
Shared counter As Integer
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
lblCounter.Text = "[This will display counter]"
End Sub
Protected Sub btnAddCounter_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAddCounter.ServerClick
counter = counter + 1
lblCounter.Text = "Counter: " & counter
End Sub
End Class