$("#<%= btnSearch.ClientID %>").click();
UPDATE
有异步这样做的许多方面。您可以将您的按钮设置为UpdatePanel的触发器,然后我的原始答案仍然可以工作。我不会那样做,但那是因为我讨厌UpdatePanels。
你可以在后面的类代码中创建一个页面的方法,就像这样:
[WebMethod]
public static void Search()
{
// Do search
}
,并在您的ScriptManager(你必须添加一个,如果你没有的话),使页面方法。
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />
然后,你甚至不需要你的按钮的服务器控件。只需使用普通的旧按钮。
<input type="button" onclick="search()" value="Search" />
// Then in javascript...
function search()
{
PageMethods.Search(function(result)
{
// deal with search result here (this is the success handler)
});
}
或者你可以直接从jquery,as shown by this Encosia article调用你的页面方法。或者,你可以有一个完全独立的服务,而不是你背后的代码的一部分,它封装了你的搜索逻辑,你可以任意调用它。
由于你已经更新了你的问题,你的问题并不在于如何执行按钮的点击处理程序,而是关于如何执行异步操作。这有点模糊。有一百万种方法可以做到这一点。