function($){
$.excuteProcedure = function(pName,parasArr,callback){
$.ajax({
data:{procedureName:pName,procedureParas:parasArr}.
url:'excuteProcedure.ashx',
datatype:'json',
success:function(data,status){
if(callback){
callback(data,status)
}
}
})
}
}(jQuery)
然后在excuteProcedure.ashx中取:
string pName = Request.Paras["procedureName"]
string[] paras = Request.Paras.getValues("procedureParas")
然后用oledb执行呗:
command.Text = pName
command.Type = CommandType.StoreProcedure
command.Parameters.Add(para1)
。。。
command.excute()
js调用上面的函数:
$.excuteProcudure('Pro_Test_Js_Excute',[1,2,'xxx'],function(data){
if(data &&data.error){
alert('调用失败:' + data.error)
}
else{
alert('既然成功了,那我接着执行下面的!')
//这就是下面的内容?
}
})
简单调用:
无参数,无回传:
$.excuteProcedure('存储过程名称')
以上是思路,已经很具体了~~
用jquery的ajax就可以的,实例如下:<script src="Jquery/jquery-1.4.2-vsdoc.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#btnOK").click(function() {
$.ajax({
//要用post方式
type: "POST",
//方法所在页面和方法名
url: "AjaxPage.aspx/ABC",
data: "{abc:111}", //带参数的,参数名称abc,参数“111”
//date:"{}",//没有参数的初始化
contentType: "application/jsoncharset=utf-8",
dataType: "json",
success: function(data) {
//返回的数据用data.d获取内容
alert(data.d)
}
})
})
})
</script>
<body>
<form id="form1" runat="server">
<asp:Button ID="btnOK" runat="server" Text="ShowText" />
</form>
</body>
后台:引入using System.Web.Services
[WebMethod]
public static string ABC(string abc) //带参数的方法
{
return abc
}
webconfig下得有如下配置节:
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>
这个在vs2008里是可行的,版本低的话,可能不能直接这么调用