0

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

文本框:

<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 设置的相同值。这就是为什么我每次都得到相同的值,而不管用户在文本框中输入的值如何。

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

提前感谢

4

3 回答 3

2

您可能正在覆盖您在 Page Load 事件中输入的文本,因为您没有检查它是否是 PostBack。请阅读ASP.NET 页面生命周期概述以获取更多信息。

于 2013-07-25T07:56:51.637 回答
2

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

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

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

于 2013-07-25T07:58:53.153 回答
0

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

于 2013-07-25T07:52:49.017 回答