我使用webmethod来识别用户是否可以“删除记录”。通过在JavaScript中使用异步webmethod返回值来触发/阻止页面事件
这是添加此访问控制之前的JavaScript代码。
$(".apply-delete-msg").live('click', function() {
return confirm("Are you sure you want to delete this item(s)?);
});
现在,它会调用将WebMethod验证访问
<WebMethod(EnableSession:=True)> _
Public Function CanAccess() As Boolean
Return ServerCode.IsAccessable
End Function
新的JavaScript则:
$(".delete-msg").live('click', function() {
MPWebService.CanAccess(
//B
function(boolRes) {
if (boolRes == true){
return confirm("Are you sure you want to delete this item(s)?");}
else{
alter("can't access");
return false;
}
});
// **Here is Comment A**: Return true/false
});
我希望 “.Live” 方法返回一个真/假如果用户可以访问并确认删除/不能访问或取消删除。
但是如果我右边的方法将调用CanAccess第一,然后注释甲:,终于评论乙,即函数(boolRes)。
因为boolRes的值在函数内部(boolRes)并且最终被处理,所以对于我来说从评论A位置得到这个方法的返回值是非常棘手的。
有什么建议吗?
有意义。但是如果click事件总是返回false,它是如何激发服务中的删除功能的。在JS中调用服务器端事件? – 2012-02-29 12:38:10
你能举个简单的例子吗? – 2012-02-29 12:47:41
您是否有与.delete-msg点击相关的回传操作?您可能拥有并且这是您要在Web方法调用后启动的操作。返回false将保证不会从点击事件处理程序调用回发。你可以使用doPostBack来回传(参见这个问题,例如:http://stackoverflow.com/questions/2738327/how-to-call-postback-using-javascript-on-asp-net-form) – kgiannakakis 2012-02-29 13:24:02