我有一个文本框和一个更新按钮:
文字框:
<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();
现在,当我在上面的文本框中填写页面加载事件中的文本集并写入另一个名称并按更新按钮时,我试图在按钮单击事件的文本框中输入新文本,如下所示: / p>
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相同的值集。这就是为什么我每次都得到相同的值,无论用户在文本框中输入的值是什么。
现在告诉我如何在我的页面中获取文本框的更新值。
提前完成
答案 0 :(得分:2)
您可能会覆盖在页面加载事件中输入的文本,因为您没有检查它是否是PostBack。 有关详细信息,请阅读ASP.NET Page Life Cycle Overview。
答案 1 :(得分:2)
在asp.net webforms中,您应该将用于设置数据的代码分开以控制和将数据保存到db。设置数据以控制的方法之一 - 使用检查
if (!IsPostBack)
{
txtFName.Text = dt.Rows[0][1].ToString();
}
页面加载事件中的。 否则,您将在每次加载页面时覆盖新输入的文本框文本。
答案 2 :(得分:0)
在尝试在pageload上再次设置/读取之前,将文本框设置为空或null。