【问题标题】:Keep html form open on asp.net button postback在 asp.net 按钮回发上保持 html 表单打开
【发布时间】:2017-01-19 03:18:57
【问题描述】:

我有一个 html 页面,您在其中单击一个按钮和一个带有一些字段的 html 表单,然后打开一个按钮。表单中的按钮是一个asp:Button,后面的代码中有一个方法来处理点击。当我单击按钮时,页面回发并且表单消失了。如何防止表单在回发时关闭?当前,当单击主页上的 html 按钮时,表单是通过 javascript 打开的。

我尝试将表单放在更新面板中,这使得回发更加顺畅,但仍然关闭了 html 表单。

<asp:Button class="btn btn-success btn-sm"  id="letsTalkVerify"  href="#" onclick="SendSms" runat="server" Text="Send SMS"></asp:Button>

Asp:按钮

<form id="letsTalkForm" action="#" runat="server">

需要在回发时保持打开状态的html表单

【问题讨论】:

  • 在ASP.Net Web Form中,根本不需要修改form标签。
  • @Win 这不是一个 ASP.Net Web 表单,这是一个带有 html 表单的 aspx 页面。
  • 你能把整个页面和代码贴在后面吗?
  • @BrandonTru 那么asp:Button with a method in the code behind 的哪一部分不是asp.net 网络表单?

标签: javascript c# jquery html asp.net


【解决方案1】:

据我了解,由于回发,您的页面已被引用,并且页面上的现有数据已被删除。

如果您不想在相同条件下丢失数据,我的意思是回发您必须在页面上使用 UpdatePanel。

UpdatePanel 是一组您希望受其影响的组件 您的 Web 应用程序中的 ajaxified 更新。触发器是什么导致 要更新的组件面板。如果您想了解更多关于 asp.net ajax 和更新面板请阅读 How Ajax for ASP.NET 更新面板工作。

参见示例:

在页面上添加 UpdatePanel 之前,您必须在页面或母版页上添加“ScriptManager”,例如:

<asp:ScriptManager ID="ScriptManager" runat="server" />

然后在页面上放上UpdatePanel标签后:

<asp:UpdatePanel ID="updatePanel3" runat="server">
<ContentTemplate>
</ContentTemplate>
<Triggers>                      
     <asp:AsyncPostBackTrigger ControlID="yourbuttonid" EventName="Click" />
</Triggers>
</asp:UpdatePanel>

注意:

1) 您不想在按钮单击(回发)时丢失的 HTML 或数据,但在带有按钮的 ContentTemplate 下。 2)在 AsyncPostBackTrigger 下设置您的按钮 ID,这将在不引用您的页面的情况下处理您的请求。

【讨论】:

    【解决方案2】:

    您可以选择通过jqueryajax()进行操作

    $("#letsTalkVerify").click(function(e){
        e.preventDefault();
        //YOUR CODE VIA AJAX
    });
    

    【讨论】:

      猜你喜欢
      • 2017-10-01
      • 2016-07-12
      • 1970-01-01
      • 2012-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多