C# 客户端用户确认后的ASPX服务器端函数调用?

C# 客户端用户确认后的ASPX服务器端函数调用?,c#,javascript,asp.net,C#,Javascript,Asp.net,也许我用错误的关键字搜索,但我找不到解决方法 我有一个ASPX页面,在中我想插入一个按钮(每个项目),该按钮将: 询问(JS“confirm”)用户是否真的想继续,然后 调用page类上的方法,从该项传入ID(Guid) 我可以做1或2,但不知道如何从JavaScript调用page方法 我曾尝试在ScriptManager中打开EnablePageMethods,但这似乎没有达到我的预期——调用PageMethods.Blah(…)似乎没有任何效果 有现成的例子吗?事实上,每个条目的确认字符串

也许我用错误的关键字搜索,但我找不到解决方法

我有一个ASPX页面,在
中我想插入一个按钮(每个项目),该按钮将:

  • 询问(JS“confirm”)用户是否真的想继续,然后
  • 调用page类上的方法,从该项传入ID(Guid)
  • 我可以做1或2,但不知道如何从JavaScript调用page方法

    我曾尝试在ScriptManager中打开EnablePageMethods,但这似乎没有达到我的预期——调用
    PageMethods.Blah(…)
    似乎没有任何效果


    有现成的例子吗?事实上,每个条目的确认字符串都是相同的。

    您可以使用按钮的属性执行确认:

    <asp:Button runat="server" ID="DeleteButton" CommandName="Delete"
     Text="Delete" OnClientClick="return confirm('Are you sure ?');" />
    

    您可以使用按钮的属性执行确认:

    <asp:Button runat="server" ID="DeleteButton" CommandName="Delete"
     Text="Delete" OnClientClick="return confirm('Are you sure ?');" />
    

    以下是您需要执行的操作:

  • 确保您的按钮已运行at=“server”
  • 在该按钮中,添加onClientClick=“javascript:return-confirm('you-sure?')
  • 从单击按钮的偶数处调用服务器端代码

    <asp:Button id="Button1" Text="Do Stuff" OnClick="YOUR SERVER SIDE METHOD"    
      onClientClick="javascript: return confirm('Are you sure?');" runat="server"/>
    
    
    

  • 以下是您需要做的:

  • 确保您的按钮已运行at=“server”
  • 在该按钮中,添加onClientClick=“javascript:return-confirm('you-sure?')
  • 从单击按钮的偶数处调用服务器端代码

    <asp:Button id="Button1" Text="Do Stuff" OnClick="YOUR SERVER SIDE METHOD"    
      onClientClick="javascript: return confirm('Are you sure?');" runat="server"/>
    
    
    
  • 
    

    以下是您需要执行的操作:

  • 启用脚本管理器(已启用)

  • 创建一个web服务,它将处理代码中的回调:

    [WebService]
    [ScriptService]
    public class MyWebService : System.Web.Services.WebService 
    {
        [WebMethod]
        public int SomeCallbackFunction() 
        { .... }
    }
    
  • 将指向web服务代理的链接放入脚本管理器(由[ScriptService]生成):


  • 这只是一个一般的想法,当然,这段代码可能需要一些润色。您可以查找更多示例。

    以下是您需要执行的操作:

  • 启用脚本管理器(已启用)

  • 创建一个web服务,它将处理代码中的回调:

    [WebService]
    [ScriptService]
    public class MyWebService : System.Web.Services.WebService 
    {
        [WebMethod]
        public int SomeCallbackFunction() 
        { .... }
    }
    
  • 将指向web服务代理的链接放入脚本管理器(由[ScriptService]生成):


  • 这只是一个一般的想法,当然,这段代码可能需要一些润色。你可以找更多的例子。

    最终我决定在客户端进行。我省略了OnClick,但将onclientclick属性设置为一个函数,该函数用于确认,然后重定向到带有add参数的页面,该参数是相关表行的ID

    为什么??嗯,我的数据源是一个只读列表,它是从几个表中创建的,因此(IIUC)是在处理按钮单击之前创建的。因此,页面刷新时没有用户刚才添加的数据

    相反,**add=***ID*参数会导致add、一条成功(或错误)消息并点亮新插入的行。当然,缺点是如果用户要刷新页面,但在这种情况下,它在IFRAME中,所以我认为不太可能

    所以,谢谢。你回答了我的问题,我只是不知道我的问题不是针对我想去的地方


    顺便说一句,我让他们在数据库中添加一行。进行确认的原因是,它在服务器上最多需要一个小时的处理时间

    最终,我决定在客户端进行。我省略了OnClick,但将onclientclick属性设置为一个函数,该函数用于确认,然后重定向到带有add参数的页面,该参数是相关表行的ID

    为什么??嗯,我的数据源是一个只读列表,它是从几个表中创建的,因此(IIUC)是在处理按钮单击之前创建的。因此,页面刷新时没有用户刚才添加的数据

    相反,**add=***ID*参数会导致add、一条成功(或错误)消息并点亮新插入的行。当然,缺点是如果用户要刷新页面,但在这种情况下,它在IFRAME中,所以我认为不太可能

    所以,谢谢。你回答了我的问题,我只是不知道我的问题不是针对我想去的地方


    顺便说一句,我让他们在数据库中添加一行。进行确认的原因是,它在服务器上最多需要一个小时的处理时间

    如果他只想要“确认对话”,我认为这是一个过火的行为。如果他只想要“确认对话”,我认为这是一个过火的行为