是否可以在vs2008中从javascript调用asp.net代码隐藏函数?
我的问题是,我有两个代码隐藏方法,一个用于某些验证,它将返回true或false。
当用户单击“提交”按钮并且返回值为true时,将调用此方法,
我想调用javascript函数进行确认(确认对话框),如果可以,我会打电话
另一个用于更新的代码隐藏方法。如果验证方法返回false或javascript取消,
没有什么变化。
现在,我的代码是这样的:
<script language="javascript" type="text/javascript">
function Confirm()
{
var checkUpdate = confirm("Do you wish to save changes?");
if (checkUpdate)
{
return true;
}
else
{
return false;
}
}
protected void Button1_Click(object sender, EventArgs e)
{
if(CheckValidate())
{
string script = "<SCRIPT LANGUAGE='JavaScript'> ";
script += "Confirm()";
script += "</SCRIPT>";
Page.RegisterStartupScript("ClientScript", script);
//If Javascript Ok Call Update,Otherewise,nothing;
}
}
private boolean CheckValidate()
{
return boolean;
}
private void UpdateData()
{
//Update;
}
然而,它立即更新方法和更新后,javascript确认框 出来了。
我如何改变以获得正确的序列?请给我正确的方法。
答案 0 :(得分:1)
是的,通过使用PageMethods,您可以从javascript调用代码隐藏方法。
查看此链接,了解有关页面方法的更多详细信息:http://aspalliance.com/1922_PageMethods_In_ASPNET_AJAX
答案 1 :(得分:0)
要在客户端事件上调用服务器端方法,您需要执行以下操作:
1-创建服务器端方法:
void DoSomething(...) { ... }
2-实现带有一个字符串参数的System.Web.UI.IPostBackEventHandler.RaisePostBackEvent
(您可以将名称指定给该参数的值):
public void RaisePostBackEvent(string eventArgument)
{
DoSomething(...);
}
3-编写脚本以触发回发:
function TriggerPostBack(control, arg){
__doPostBack(control, arg);
}
4-需要时调用PostBack触发功能:
<a .... onclick="TriggerPostBack('control', 'arg')" .. />
答案 2 :(得分:0)
在你的情况下,你为什么不使用按钮的OnClientClick函数来调用你的javascript函数?
此致 S Mukherjee。