【问题标题】:Unable to get the updated text of text box无法获取文本框的更新文本
【发布时间】:2013-07-25 07:48:34
【问题描述】:

我有一个文本框和一个更新按钮:

文本框:

<asp:TextBox ID="txtFName" runat="server"></asp:TextBox>

更新按钮:

<asp:Button ID="btnUpdFName" runat="server"Text="Update" onclick="btnUpdFName_Click"/>

我在页面加载事件中所做的事情是我从数据库中获取名字并将其分配给文本框,如下所示:

txtFName.Text = dt.Rows[0][1].ToString();

现在,当我在上面的文本框中删除页面加载事件中设置的文本并写下另一个名称并按下更新按钮时,我试图在按钮单击事件的文本框中输入新文本,如下所示:

string FName = txtFName.Text;

但问题是每次我在文本框中写入新文本时,我仍然得到与设置表单数据库相同的文本 (dt.Rows[0][1].ToString() )。 我无法从文本框中获取当前文本,也无法在页面加载事件中仅获取从 db 设置的初始值。

我遇到的情况是编译后我的文本框标记如下:

<input id="CPHcontent_txtFName" type="text" value="value set from db i.e. dt.Rows[0] [1].ToString()" name="ctl00$CPHcontent$txttxtFName"></input>

文本框始终具有从 db 设置的相同值。这就是为什么我每次都得到相同的值,而不管用户在文本框中输入的值。

现在告诉我如何在我的页面后面获取文本框的更新值。

提前感谢

【问题讨论】:

  • 显示你的页面加载事件?

标签: html asp.net c#-4.0


【解决方案1】:

在 asp.net webforms 中,您应该将用于设置数据以控制和将数据保存到 db 的代码分开。设置数据控制的方法之一——使用检查

if (!IsPostBack)
{
    txtFName.Text = dt.Rows[0][1].ToString();
} 

在页面加载事件中。 否则,您将在每次页面加载时覆盖您新输入的文本框文本。

【讨论】:

    【解决方案2】:

    您可能正在覆盖您在 Page Load 事件中输入的文本,因为您没有检查它是否是 PostBack。 请阅读ASP.NET Page Life Cycle Overview 了解更多信息。

    【讨论】:

    • 你在写...我忘了绑定文本如果不回发...现在我可以得到文本了..谢谢很多。
    【解决方案3】:

    在您尝试在页面加载时再次设置/读取文本框之前将文本框设置为空或 null。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-25
      • 1970-01-01
      • 1970-01-01
      • 2015-11-23
      • 2016-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多