【问题标题】:ASP Textbox keeps data, input element clearedASP 文本框保持数据,输入元素被清除
【发布时间】:2015-04-05 19:12:59
【问题描述】:

我有一个带有两个 asp 文本框和两个输入元素的 aspx.net 页面。

<asp:TextBox class="input1" ID="TextBoxAirportPkup" placeholder="Enter Flight Number" runat="server"></asp:TextBox>...
<asp:TextBox class="input1 " ID="TextBoxAirportName" placeholder="Airport" runat="server" />...
<input id="airPickupdateInput" class="timepicker datepicker" placeholder="Pickup Date" type="text" />
<input type="text" id="airPickuptimeInput" class="timepicker" placeholder="Pickup Time" />

当我单击一个不相关的按钮并运行一些代码隐藏时,TextBox 元素中的文本被保留,但输入元素中的文本被清除。 Page_Load 使用 IsPostback == true 调用,但在这种情况下我不运行任何代码。为什么会发生这种情况,我该如何预防?

【问题讨论】:

    标签: asp.net html-input


    【解决方案1】:

    添加runat="server",服务器端可以看到输入元素。

    【讨论】:

    【解决方案2】:

    这两个文本框保留了它们的状态,因为它们是服务器控件,因此它们可以访问旨在跨回发保持状态的页面视图状态。

    这两个输入控件是 html 控件,它们无权访问视图状态,因此在回发后不会重新填充(实际上就像刷新页面一样)。

    为了在回发后保留这些输入的状态,您要么需要使它们成为服务器控件,要么使用隐藏字段控件并使用 javascript 将隐藏控件中的值写回输入(如果它们不能成为服务器控件)不管什么原因。

    还可以使用 Ajax 提交其他操作或表单,而不会导致整个页面的回发,因此无需刷新页面上的所有数据。这将需要对您的应用程序进行一些重组。

    有关视图状态的更多信息,请参阅https://msdn.microsoft.com/en-us/library/ms972976.aspx#viewstate_topic3

    【讨论】:

      猜你喜欢
      • 2011-11-07
      • 2013-06-21
      • 2012-04-22
      • 2018-08-23
      • 1970-01-01
      • 2017-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多