我是 lift 新手,希望在我的项目中实现以下功能:
页面中有一个“删除”链接,当用户点击它时,会出现一条确认消息“您确定要删除吗?”。如果用户点击"is",它将进行 AJAX 调用以删除服务器端的某些内容,然后显示“操作完成”通知,3 秒后,页面将重新加载。
如何在 lift 中实现这一点?我搜索了很多,但没有找到正确的例子。
我现在只能这样做:
SHtml.a( ()=>Confirm("are you sure to delete", ???), "delete" )
最佳答案
最简单的方法是将 SHtml.ajaxInvoke
与 JsCmds.Confirm
结合使用。它将创建一个服务器端函数并返回一个包含 functionId 和 JsCmd 的元组。因此,类似这样的事情应该可以满足您的要求:
SHtml.a( () => {
JsCmds.Confirm("Are you sure you want to delete?", {
SHtml.ajaxInvoke(() => {
//Logic here to delete
S.notice("Operation complete")
JsCmds.After(3 seconds, JsCmds.Reload) //or whatever javascript response you want, e.g. JsCmds.Noop
})._2
})
}, "delete")
在上面 - 单击链接将触发确认。如果您选择“确定”,那么它将向您的函数发出 ajax 调用并显示一条通知。您可以在任何需要 JsCmd
的 SHtml
项中使用它。
如果您希望页面在超时后重定向,您可以编写一个客户端 JavaScript 函数来执行您需要的操作,并使用 JsCmds.Run
调用它。
关于ajax - 如何在电梯中使用Confirm进行AJAX调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16508414/