也许我正在搜索错误的关键字,但我无法找到解决方案。
我有一个ASPX页面,在<asp:Repeater>
内我想插入一个按钮(每个项目):
我可以做1或2,但无法弄清楚如何从JavaScript调用页面方法。
我尝试在ScriptManager中启用EnablePageMethods,但这似乎没有达到我的预期 - 调用PageMethods.Blah(...)
似乎没有任何效果。< / p>
有没有现成的例子?实际上,每个条目的确认字符串都是相同的。
答案 0 :(得分:3)
您可以使用按钮的OnClientClick属性执行确认:
<asp:Button runat="server" ID="DeleteButton" CommandName="Delete"
Text="Delete" OnClientClick="return confirm('Are you sure ?');" />
答案 1 :(得分:2)
这是你需要做的:
从onClick甚至是按钮
调用您的SERVER SIDE代码<asp:Button id="Button1" Text="Do Stuff" OnClick="YOUR SERVER SIDE METHOD"
onClientClick="javascript: return confirm('Are you sure?');" runat="server"/>
答案 2 :(得分:0)
<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>
答案 3 :(得分:0)
以下是您需要做的事情:
启用脚本管理器(您做过)
创建一个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()
}
这只是一个普遍的想法,当然,这段代码可能需要一些抛光。您可以查找更多示例here。
答案 4 :(得分:0)
最终我决定在客户端做这件事。我省略了 OnClick ,但将 onclientclick 属性设置为确认的函数,然后重定向到带有 add 参数的页面,该参数是表格有问题。
为什么呢?好吧,我的数据源是一个由几个表创建的只读列表,因此(IIUC)它是在处理按钮点击之前创建的。因此,页面刷新时没有用户刚刚添加的数据。
相反,** add = *** ID *参数会导致添加,成功(或错误)消息以及新插入行的hilights。不利的一面是,如果用户要刷新页面,当然,但在这种情况下,它在IFRAME中,所以我认为不太可能。
所以,谢谢。你回答了我的问题,我只是没有意识到我的问题并不是针对我想去的地方。
顺便说一句,我让他们在数据库中添加一行。确认的原因是它会在服务器上产生长达一个小时的处理时间!