如何从客户端调用服务器端按钮单击功能?

时间:2014-03-18 06:14:31

标签: javascript asp.net c#-4.0

我有服务器端功能

protected void SearchButton_Click(object sender, EventArgs e)       
{

}

我需要从客户端脚本调用

function calSearch()
{
    // here I need to call the client side script
}

3 个答案:

答案 0 :(得分:8)

你无法做到这一点,你的选择是使用javascript模拟点击按钮。

<asp:Button ID="savebtn" runat="server" OnClick="savebtn_Click" style="display:none" />

HTML标记将如下所示:

<button id="btnsave" onclick="fncsave()">Save</button>

现在使用JS模拟Click

<script type="text/javascript">
     function fncsave()
     {
        document.getElementById('<%= savebtn.ClientID %>').click();
     }
</script>

其他解决方案是使用ajax。

答案 1 :(得分:2)

你可以使用__doPostBack方法

function functionName()
{

__doPostBack('ButtonId','OnClick');

}

或者你可以尝试这个....

<button id="btnsave" onclick="callfunction()">Save</button>// to all javascript
<asp:Button ID="btnSave" runat="server" OnClick="btnSave_Click" style="display:none" />


<script type="text/javascript">
     function callfunction()
     {  
         /*do your javascript coding here*/
        document.getElementById('<%= btnSave.ClientID %>').click();
       // we are firing onClick event for  asp button btnsave form javascript.
     }
</script>

否则你可以在后面的代码中创建WebMethod并进行AJAX调用,但是你将无法在WebMethod中访问asp控件。

   $.ajax({
            type: "POST",
            url: "AspDotNetPage{}'{"+myData+"}',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(msg) {
               alert(msg);                
            }
          });

答案 2 :(得分:0)

假设您的按钮ID为 SearchButton ,则可以执行此操作

function calSearch(){

__doPostBack('SearchButton','');

}

注意:在doPostBack()函数

之前有两个下划线

A better way to do this here