我有服务器端功能
protected void SearchButton_Click(object sender, EventArgs e)
{
}
我需要从客户端脚本调用
function calSearch()
{
// here I need to call the client side script
}
答案 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()函数
之前有两个下划线