【问题标题】:How to retain Textbox values after a Postback?回发后如何保留文本框值?
【发布时间】:2020-05-25 19:30:00
【问题描述】:

我在同一页面中几乎没有文本框、文件上传和按钮控件。我曾尝试将 EnableViewState 启用为 True,但它仍然无法正常工作。单击按钮上传附件时,文本框将失去其值。我可以知道这里出了什么问题,我应该使用 ViewState 来保留文本框的值吗?

<div class="form-row">
    <div class="form-group col-md-6" >
            <asp:Label ID="lblConfiguration" runat="server" Text="Configuration*"></asp:Label>
        <asp:TextBox ID="txtConfiguration" runat="server" type="text" class="form-control" EnableViewState="true"  ViewStateMode="Enabled" ></asp:TextBox>
    </div>

    <div class="form-group col-md-12">
        <div class="col-md-6">
        <asp:FileUpload ID="fuUpload" runat="server" CssClass="nv-file-select uploader" multiple="true" /> 
            <br />
        <asp:Button ID="btnUpload" runat="server" Text="Upload" OnClick="btnUpload_Click" CssClass="btn btn-secondary" />  
    </div>
</div>

【问题讨论】:

  • 您是否也启用了页面级别的视图状态?
  • 我在页面和母版页中找不到这样的参数。即使我在页面级别和母版页启用它仍然无法正常工作。
  • 参数显示在 Aristos 答案中。文本框是否保持其值,如果您将页面缩减到最低限度,例如只有文本框和按钮?
  • 我没有这样做。我将求助于将控件的值绑定到 ViewState 作为解决方案。

标签: c# asp.net


【解决方案1】:

可能的原因

1) 您已禁用整页上的 Viewstate - 检查 aspx 页面顶部是否启用

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="FileName.ascx.cs" EnableViewState="true" %>

2) 在您后面的代码中的某个时间点更改回发时的值 - 所以通过添加此检查来检查以不更改它

if (!Page.IsPostBack)
{
    TextBox.Text = "";
}

3) 出于某种原因,在您回帖后,您会在同一页面上重定向。

4) 出于某种原因,您没有回帖,而是重新加载

【讨论】:

  • 在发布此问题之前,我已经完成了第 1 步)。它没有用。 2) 3) 4) 不是
  • 但 AutoEventWireup="true" 在母版页中。不知道这是做什么的。
  • 我找到了问题的原因。当我与一页共享编辑和新条目时,我正在使用数据库中的空值重新绑定控件。当我指出控件重新绑定时,EnableViewState 起作用。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-18
  • 2017-02-11
  • 2017-09-16
  • 1970-01-01
相关资源
最近更新 更多