【问题标题】:UI changes not persisting in ASP.Net applicationUI 更改不会在 ASP.Net 应用程序中持续存在
【发布时间】:2019-08-13 08:17:54
【问题描述】:

我有一个默认隐藏的table。单击搜索按钮时,我使用 jQuery 删除 d-none 类并显示表格。

<input type="submit" value="Search" class="btn btn-default" id="searchName" />
<table id="resultsTable" class="table d-none">
$(document).ready(function() {
  $("#searchName").click(function () {
      $("#resultsTable").removeClass("d-none");
  });
});

它起作用了,但只是片刻之后桌子又消失了。我认为这与坚持不懈有关,但不确定如何进步。

谁能指点我正确的方向?

【问题讨论】:

  • 您是刷新页面还是使用表格部分?
  • 当您单击提交按钮时,您将导致父 form 向服务器发送请求以发送包含在表单字段中的信息。根据您描述的行为,这会导致页面重新加载,因此您所做的任何 UI 更改都会丢失。如果您想保留它们,您需要保存页面的状态并在下次加载页面时重新应用该状态。或者,您可以通过使用 AJAX 发送表单数据来避免页面重新加载。最后请注意,检查hasClass()if 条件是多余的。
  • @PiotrStapp 我猜页面正在刷新,这是什么问题?我该如何阻止呢?
  • @RoryMcCrossan 谢谢,这是有道理的。我可以遵循任何示例来进行此类更改吗?
  • 使用event.preventDefault() doc

标签: jquery html css asp.net .net


【解决方案1】:

当单击 type="submit" 按钮时,默认行为是刷新页面,因此 javascript 运行,并且在页面被刷新后立即运行,并且浏览器接收到原始 html 类仍然存在.

我有一段时间没有使用 ASP.Net,但如果该按钮不需要向服务器发送任何内容,您可以删除 type="input" 并放入 type="button"。

【讨论】:

    【解决方案2】:

    在提交页面刷新时打开页面的原始视图。为避免这种情况,请尝试使用 asp.net 中提供的 IsPostBack 为 false。这不会刷新页面,但会完成工作。 其他在加载时隐藏页面并使用 JQuery 的方法,您可以显示表格或 div 按钮再次单击,并将 IsPostBack 返回为 false。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-25
      • 1970-01-01
      • 2016-04-13
      • 1970-01-01
      • 2019-09-26
      相关资源
      最近更新 更多