[英]ASPX server-side function call after client-side user confirmation?
也许我在搜索错误的关键字,但找不到解决方案。
我有一个ASPX页面,在该页面上的<asp:Repeater>
我想插入一个按钮(每个项目),该按钮将:
我可以做1或2,但无法弄清楚如何从JavaScript回调到page方法。
我曾尝试在ScriptManager中打开EnablePageMethods,但这似乎并没有达到我的预期-调用PageMethods.Blah(...)
似乎没有任何效果。
有没有现成的例子? 实际上,每个条目的确认字符串都是相同的。
您可以使用按钮的OnClientClick属性执行确认:
<asp:Button runat="server" ID="DeleteButton" CommandName="Delete"
Text="Delete" OnClientClick="return confirm('Are you sure ?');" />
这是您需要做的:
从onClick甚至从按钮调用您的服务器端代码
<asp:Button id="Button1" Text="Do Stuff" OnClick="YOUR SERVER SIDE METHOD" onClientClick="javascript: return confirm('Are you sure?');" runat="server"/>
<asp:Repeater ID="YourRepeater" runat="server">
<ItemTemplate>
<asp:Button ID="btnDelete" runat="server" OnClientClick="javascript:return confirm('Are you sure ?');" OnClick="btnDelete_OnClick" />
</ItemTemplate>
</asp:Repeater>
这是您需要做的:
启用脚本管理器(您所做的)
创建一个Web服务,该服务将处理代码的回调:
[WebService] [ScriptService] public class MyWebService : System.Web.Services.WebService { [WebMethod] public int SomeCallbackFunction() { .... } }
将指向Web服务代理的链接放入脚本管理器(由[ScriptService]生成):
<asp:ScriptManager runat="server" ID="scriptManagerId"> <Services> <asp:ServiceReference Path="WebService.asmx" /> </Services> </asp:ScriptManager>
在您的JavaScript中,您将能够使用回调:
function Blablabla() { MyWebService.SomeCallbackFunction() }
这只是一个大致的想法,当然,此代码可能需要一些改进。 您可以在此处查找更多示例。
最终,我决定在客户端进行此操作。 我省略了OnClick,但将onclientclick属性设置为一个函数,该函数进行确认,然后使用add参数重定向到该页面,该参数是所讨论的表行的ID。
为什么? 好吧,我的数据源是一个由几个表创建的只读列表,因此(IIUC)它是在处理按钮单击之前创建的。 因此,页面刷新后没有用户刚刚添加的数据。
相反,** add = *** ID *参数会导致添加,成功(或错误)消息并突出显示新插入的行。 不利的一面当然是用户是否要刷新页面,但是在这种情况下,它位于IFRAME中,因此我认为不太可能。
那谢谢啦。 您回答了我的问题,我只是没有意识到我的问题并不是针对我想去的地方。
顺便说一句,我让他们在数据库中添加一行。 进行确认的原因是,它在服务器上最多需要一个小时的处理时间!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.